ste*_*eve 12 sql postgresql aggregate-functions
我想制作一个SQL查询,找到平均评分最高的电影奖项,所以对于一组获得特定奖项的电影,如果他们的平均评分高于其他任何一组电影那么它将被退回.
我试过这样的事情:
SELECT MAX(AVG(m."Rating"))
FROM awards a, movies m
WHERE a."Title" = m."Title"
GROUP BY a."Award"
Run Code Online (Sandbox Code Playgroud)
但似乎聚合函数不能嵌套.如何在每个类别的平均评级上调用max函数?
a_h*_*ame 11
如果您只对价值本身感兴趣,则应执行以下操作:
SELECT MAX(avg_rating)
FROM (
SELECT AVG(m."Rating") as avg_rating
FROM awards a, movies m
WHERE a."Title" = m."Title"
GROUP BY a."Award"
) t
Run Code Online (Sandbox Code Playgroud)
否则Adrian的解决方案会更好.
这将带来您想要的结果:
SELECT a."Award", AVG(m."Rating")
FROM awards a, movies m
WHERE a."Title" = m."Title"
GROUP BY a."Award"
ORDER by AVG(m."Rating") desc
LIMIT 1
Run Code Online (Sandbox Code Playgroud)
这样您不仅可以获取MAX值,还可以获取相应的Award信息
你尝试过这个吗?
SELECT MAX(
SELECT AVG(m."Rating")
FROM awards a, movies m
WHERE a."Title" = m."Title"
GROUP BY a."Award"
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24005 次 |
| 最近记录: |