以下是我想回答的问题: 对于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;
这会返回所有年份的整体平均得分。我需要每年的平均分数来显示。有什么想法吗?
答案 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
的聚合函数时,它将应用于整个表,因此是您当前的结果。