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

如何用单条Hive查询计算各航空公司平均延误时长的最大值?

单条Hive查询实现航空公司延误时长平均值的最大值

当然可以!完全不需要创建额外的中间表,用两种常见的Hive查询写法就能搞定这个需求:

方法一:使用子查询

把计算各航空公司平均延误的逻辑放在子查询里,外层直接对这些平均值取最大值即可:

SELECT MAX(avg_delay) AS max_avg_delay
FROM (
    -- 子查询:按航空公司分组计算平均延误时长
    SELECT AVG(delay) AS avg_delay
    FROM flightdelays2
    GROUP BY airline
) AS avg_delays_subquery;

这个语句的逻辑很清晰:内层先完成分组求平均的操作,外层直接基于这些结果取最大值,全程不需要落地中间表。

方法二:使用窗口函数

利用窗口函数MAX() OVER()也能实现,这种写法更灵活,适合后续扩展其他分析需求:

SELECT DISTINCT MAX(AVG(delay)) OVER() AS max_avg_delay
FROM flightdelays2
GROUP BY airline;

这里先按airline分组计算每个公司的平均延误,然后通过窗口函数在所有分组的平均值中找出最大值,最后用DISTINCT去重(因为每个分组都会返回同一个最大值,去重后只保留唯一结果)。

两种写法都能达到你的需求,子查询更直观易懂,窗口函数则在复杂分析场景下更有优势,你可以根据实际情况选择。

内容的提问来源于stack exchange,提问作者bablu bhadrecha

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:55:14