以下是我要回答的问题:
在2010年至2013年(包括2010年至2013年)的每一年中,显示该年电影发行的平均得分。按年度按降序排列结果。您的输出应该有两列:yr和avg U 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;
当您使用聚合函数(如
AVG
而不使用GROUP BY
)时,它将应用于整个表,因此是您当前的结果。