ORDER BY帮助:如何获得每年的平均分数?

时间:2018-04-09 01:39:00

标签: mysql sql sql-order-by average

以下是我想回答的问题: 对于2010年至2013年(包括2010年和2013年)的每一年,显示当年发行的电影的平均分数。按年份降序排列结果。您的输出应该有两列:yr和avg_score。

我写了以下查询:

SELECT DISTINCT (yr), (SELECT AVG(score) FROM movie) AS avg_score

FROM movie

WHERE yr BETWEEN 2010 AND 2013

ORDER BY yr DESC;

这会返回所有年份的整体平均得分。我需要每年的平均分数来显示。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

使用GROUP BY,然后取平均值:

SELECT yr, AVG(score) AS avg_score
FROM movie
WHERE yr BETWEEN 2010 AND 2013
GROUP BY yr;

当您使用AVG而不使用GROUP BY的聚合函数时,它将应用于整个表,因此是您当前的结果。