如何获得平均评分并四舍五入到最接近的1?

时间:2014-01-14 01:04:07

标签: php sql average

我有一个名为product_reviews的投票表,其字段为ENUM,范围为1到5,名为rating

我希望得到product_id为1665的所有行的平均评分。我使用星级评分系统,因此平均值不能带小数。必须是1到5之间的数字。

非常感谢你。

1 个答案:

答案 0 :(得分:1)

SELECT round(avg(rating)) as average_review, 
       count(rating) as number_of_reviews
FROM product_reviews 
WHERE product_id = 1665

您需要在此使用round,因为avg将返回介于1.0和5.0之间的值,如果您使用floorceil,则有效消除1 < em>或 5来自可能的结果,除非产品上的所有评论都有该分数。

此外,如果他们可以公开看到一个产品获得50个评论,1个星级,1个评论2个星级,并且您显示平均得分为2星,那么您将疏远您的用户。它会让你的网站看起来不可靠,对于包含评论的网站来说,这通常不是一件好事。因此,大多数星级评定系统也能够显示部分恒星,使其更加精确。