我想获得具有相同ID的应用的平均评分。
例如AppID为1的应用程序应该只显示一条显示平均评分为3.333的记录,而另一条记录应该是AppID为14且平均评分为4.
SELECT reviews.Rating, reviews.AppID, apps.AppID, apps.image, apps.AppName, apps.Accepted
FROM reviews
JOIN apps
WHERE reviews.AppID = apps.AppID
到目前为止,结果为每个ID提供单独的评级。
我试过
GROUP BY AppID
带
AVG(Rating)
但我不能理解它。 感谢帮助。
答案 0 :(得分:0)
这应该适合你:
SELECT AppID, AVG(Rating) AS AverageRating
FROM reviews
GROUP BY AppID
如果您需要apps表中的字段,可以尝试:
SELECT r.AverageRating, a.AppID, a.image, a.AppName, a.Accepted
FROM apps a
INNER JOIN (
SELECT AppID, AVG(Rating) AS AverageRating
FROM reviews
GROUP BY AppID) r
ON r.AppID = a.AppID
答案 1 :(得分:0)
我相信已经给出的答案是正确的。然而,OP试图获得一堆专栏。也许唯一的问题是该群体需要更广泛。 OP没有评论该组失败的原因,是否返回了不需要的结果或是否无效。使用OP的选择目标列表,group by必须非常宽,例如:
SELECT reviews.Rating, reviews.AppID, apps.AppID, apps.image, apps.AppName, apps.Accepted
FROM reviews
JOIN apps
WHERE reviews.AppID = apps.AppID
group by reviews.AppID, apps.AppID, apps.image, apps.AppName, apps.Accepted
-g