SQL Server:仅当行具有xxx行数时的平均列

时间:2016-08-11 20:27:26

标签: sql-server

我正在为我们的商业网站建立一个星级评分系统,我很难过。我可以得到平均星数没问题。但我想要的是它只给我平均值 如果特定产品有超过5个提交的评级 。默认情况下,数据库将所有内容设置为0.因此人们只能在1-5星之间进行评分。到目前为止,我有平均值:

SELECT
    AVG(CAST(review_rating AS numeric(12, 2))) AS avg_rating, ProductID
FROM
    TBLReviews
WHERE 
    review_rating <> 0
GROUP BY 
    ProductID
HAVING  
    (AVG(review_rating) <> 0)

感谢您提供任何帮助!

1 个答案:

答案 0 :(得分:0)

您需要添加一个简单的条件:

SELECT  AVG(CAST(review_rating AS numeric(12, 2))) AS avg_rating, 
        ProductID
FROM TBLReviews
WHERE review_rating <> 0
GROUP BY ProductID
HAVING AVG(review_rating) <> 0 
AND COUNT(*) > 5;