mysql - ORDER BY 帮助 : How to get Average score PER YEAR?

标签 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;

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

最佳答案

使用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/

相关文章:

php - 从不同的列中选择多个值

mysql - 如何去掉结束日期字段

php - 从数据库中选择不同的值

mysql - 对非常大的 INNER JOIN SQL 查询进行分区

mysql - 导入省略列的sql文件数据(MySql)

SQL "not a valid month"

mysql - 基于group by order by数据更新记录

mysql - 按顺序使用最大列值

python - 按 NULL 排序,然后 id asc