如何使用Mysql从多行获得多个平均值

时间:2014-11-10 15:26:37

标签: mysql sql

我试图获得评分为6的每场比赛的平均评分(1-10)。

以下是该表的示例: enter image description here

我可以选择这样的6场比赛之一的平均值:

SELECT ROUND(AVG(overallRating), 0), COUNT(*) AS Total, gameID
FROM gameSurvey
WHERE gameID = 1

我想检索所有6款游戏的平均评分?

4 个答案:

答案 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示例,但它现在似乎已经失效了。希望这是足以帮助您前进的信息。