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

如何使用Mysql从多行中获得多个平均值,mysql,sql,Mysql,Sql,我试图获得6场比赛的平均评分(1-10) 以下是该表的一个示例: 我可以这样选择6场比赛中的一场: SELECT ROUND(AVG(overallRating), 0), COUNT(*) AS Total, gameID FROM gameSurvey WHERE gameID = 1 SELECT ROUND(AVG(overallRating), 0), COUNT(*) AS numberOfRatings, gameID FROM gameSurvey GROUP BY game

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

以下是该表的一个示例:

我可以这样选择6场比赛中的一场:

SELECT ROUND(AVG(overallRating), 0), COUNT(*) AS Total, gameID
FROM gameSurvey
WHERE gameID = 1
SELECT ROUND(AVG(overallRating), 0), COUNT(*) AS numberOfRatings, gameID
FROM gameSurvey
GROUP BY gameID;
我想检索所有6场比赛的平均评分?

试试:

SELECT ROUND(AVG(overallRating), 0), count(*) as Total, gameID
FROM gameSurvey
GROUP BY gameID
SELECT ROUND(AVG(overallRating), 0), count(*) as Total, gameID
FROM gameSurvey
GROUP BY gameID

将查询更改为使用
分组依据


使用分组依据

正如其他人所说,您应该使用分组依据

正如所暗示的那样,这是基于给定列将某些行分组在一起。在本例中,您希望将所有gameID值分组到一行中。然后,在这些组中执行任何聚合函数(如AVG),因此在结果集中看到的平均值就是给定组的平均值

这是一个关于子句的资源

您的查询如下所示:

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

我曾试图为您构建一个SQL Fiddle示例,但目前似乎已经失败。希望这些信息足以帮助您前进。

而不是
where
按游戏ID分组。