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

SQL技术求助:获取航班延误超1小时占比TOP3航空公司

获取延误超1小时航班占比TOP3航空公司的正确SQL实现

原代码的问题

  • 错误计算了延误时长的占比,而非需求要求的延误航班数的占比
  • 混用GROUP BY与窗口函数SUM() OVER(),语法逻辑冲突(GROUP BY后无法直接引用未聚合的ARR_DELAY字段)

正确SQL实现

SELECT 
    AIRLINE_CODE,
    -- 计算延误超1小时的航班占比,保留两位小数
    ROUND(100.0 * COUNT(CASE WHEN ARR_DELAY > 60 THEN 1 END) / COUNT(*), 2) AS delay_over_1h_ratio
FROM ninteen_Flights
GROUP BY AIRLINE_CODE
-- 按占比降序排序
ORDER BY delay_over_1h_ratio DESC
-- 取TOP3航空公司
LIMIT 3;

逻辑说明

  • COUNT(CASE WHEN ARR_DELAY > 60 THEN 1 END):统计每个航空公司中延误时长超过60分钟的航班数量(不满足条件的记录会被COUNT忽略)
  • COUNT(*):统计每个航空公司的总航班数
  • 100.0 * ... / ...:用浮点型数值触发浮点运算,避免整数除法导致的精度丢失,将比例转换为百分比
  • ROUND(..., 2):将结果保留两位小数,提升可读性
  • ORDER BY ... DESC:按占比从高到低排序
  • LIMIT 3:筛选出排名前3的航空公司

内容的提问来源于stack exchange,提问作者U.P

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 11:17:22