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

从子查询选取max函数最大值及对应facid的SQL问题排查

问题原因
  • 外层查询额外按照facid做了分组操作。子查询的输出已经是「每个设施ID对应唯一的总预订槽位量」的结果集,按facid分组后每个分组仅包含1条记录,此时调用max(total)计算的就是当前分组单条记录的total值,最终自然会返回所有设施的总预订量,无法筛选出最大值。
正确实现方案

方案1:无需处理并列最高的场景

直接对总预订量降序排序后取第一条即可:

select 
    facid, 
    sum(slots) as total
from cd.bookings
group by facid
order by total desc
limit 1;

方案2:需处理并列最高的场景

如果存在多个设施预订量同为最高的情况,需要先计算出最大总预订量,再匹配对应记录:

with fac_total as (
    select 
        facid, 
        sum(slots) as total
    from cd.bookings
    group by facid
)
select facid, total
from fac_total
where total = (select max(total) from fac_total);

内容的提问来源于stack exchange,提问作者Tapan Das

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 11:15:08