以下是我要回答的问题: 对于 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;
这将返回所有年份的平均分数作为一个整体。我需要每年的平均分数来显示。有什么想法吗?
最佳答案
使用GROUP BY
然后取平均值:
SELECT yr, AVG(score) AS avg_score
FROM movie
WHERE yr BETWEEN 2010 AND 2013
GROUP BY yr;
当您使用没有 GROUP BY
的聚合函数(例如 AVG
)时,它将应用于整个表,因此您的当前结果。
关于mysql - ORDER BY 帮助 : How to get Average score PER YEAR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49724477/