You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:修正SQL查询以正确获取每年最高预算电影的完整结果

问题描述

现有通过以下DDL创建的movie表:

create table movie(id int, name varchar(15), releaseyear int, budget int);

实际需求:获取所有预算等于任意年份最高预算的电影的id、name、releaseyear和budget(注:原需求描述存在偏差,实际预期输出对应此逻辑)。

注意事项:

  • 结果需按budget降序排序;若budget相同,则按releaseyear降序排序;若budget和releaseyear均相同,则按id降序排序。
  • 禁止使用WITH子句。

原SQL查询:

select m.id,m.name,m.releaseyear,m.budget 
from movie m 
join (select releaseyear,max(budget) as maxbudget from movie group by releaseyear) mm 
on m.releaseyear=mm.releaseyear and m.budget=mm.maxbudget 
order by budget desc, releaseyear desc, id desc;

测试数据:

501 Movie1 2018 850000000 
502 Movie2 2018 800000000 
503 Movie3 2018 850000000 
504 Movie4 2018 750000000 
505 Movie5 2019 850000000 
506 Movie6 2019 950000000 
507 Movie7 2019 900000000 
508 Movie8 2019 500000000 
509 Movie9 2019 850000000 
510 Movie10 2020 800000000 
511 Movie11 2020 700000000 
512 Movie12 2020 600000000 
513 Movie13 2020 990000000 
514 Movie14 2017 920000000 
515 Movie15 2017 910000000 
516 Movie16 2021 990000000

预期输出:

516 Movie16 2021 990000000 
513 Movie13 2020 990000000 
506 Movie6 2019 950000000 
514 Movie14 2017 920000000 
509 Movie9 2019 850000000 
505 Movie5 2019 850000000 
503 Movie3 2018 850000000 
501 Movie1 2018 850000000

实际输出(原SQL):

516 Movie16 2021 990000000 
513 Movie13 2020 990000000 
506 Movie6 2019 950000000 
514 Movie14 2017 920000000 
503 Movie3 2018 850000000 
501 Movie1 2018 850000000

问题:原SQL仅返回了各年份自身预算最高的电影,未包含那些预算等于其他年份最高预算的电影(例如2019年预算8500万的Movie5和Movie9,8500万是2018年的最高预算)。

修正后的SQL查询
select id, name, releaseyear, budget
from movie
where budget in (
    select max(budget) 
    from movie 
    group by releaseyear
)
order by budget desc, releaseyear desc, id desc;
逻辑说明
  1. 子查询select max(budget) from movie group by releaseyear先找出所有年份的最高预算值,得到一个预算集合。
  2. 外层查询筛选出budget属于这个集合的所有电影,这样就包含了所有预算等于任意年份最高预算的影片。
  3. 最后按照要求的排序规则对结果进行排序,得到预期输出。

内容的提问来源于stack exchange,提问作者Saran Kumar S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 07:17:31