我试图获得评分为6的每场比赛的平均评分(1-10)。
以下是该表的示例:
我可以选择这样的6场比赛之一的平均值:
SELECT ROUND(AVG(overallRating), 0), COUNT(*) AS Total, gameID
FROM gameSurvey
WHERE gameID = 1
我想检索所有6款游戏的平均评分?
答案 0 :(得分:2)
尝试:
SELECT ROUND(AVG(overallRating), 0), count(*) as Total, gameID
FROM gameSurvey
GROUP BY gameID
答案 1 :(得分:2)
更改查询以使用GROUP BY
:
SELECT ROUND(AVG(overallRating), 0), count(*) as Total, gameID
FROM gameSurvey
GROUP BY gameID
答案 2 :(得分:2)
SELECT ROUND(AVG(overallRating), 0), count(*) as Total, gameID
FROM gameSurvey
GROUP BY gameID
使用GROUP BY
答案 3 :(得分:2)
正如其他人所说,你应该使用group by。
这意味着,基于给定列将某些行组合在一起。在这种情况下,您希望将所有gameID值分组到一行中。然后,在这些组中执行任何聚合函数(例如AVG),因此您在结果集中看到的平均值是该给定组的平均值。
以下是GROUP BY子句中的资源。
您的查询将如下所示:
SELECT ROUND(AVG(overallRating), 0), COUNT(*) AS numberOfRatings, gameID
FROM gameSurvey
GROUP BY gameID;
我试图为你构建一个SQL Fiddle示例,但它现在似乎已经失效了。希望这是足以帮助您前进的信息。