ORDER BY 帮助:如何获得每年的平均分数?
ORDER BY help: How to get Average score PER YEAR?
以下是我要回答的问题:
对于 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;
这 returns 整个年份的平均分相同。我需要每年的平均分数来显示。有什么想法吗?
用GROUP BY
然后取平均值:
SELECT yr, AVG(score) AS avg_score
FROM movie
WHERE yr BETWEEN 2010 AND 2013
GROUP BY yr;
当您在没有 GROUP BY
的情况下使用 AVG
等聚合函数时,它将应用于整个 table,因此您当前的结果。
以下是我要回答的问题: 对于 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;
这 returns 整个年份的平均分相同。我需要每年的平均分数来显示。有什么想法吗?
用GROUP BY
然后取平均值:
SELECT yr, AVG(score) AS avg_score
FROM movie
WHERE yr BETWEEN 2010 AND 2013
GROUP BY yr;
当您在没有 GROUP BY
的情况下使用 AVG
等聚合函数时,它将应用于整个 table,因此您当前的结果。