类似HAVING的QUALIFY用法

在 Spark SQL 中,对应 HAVING(过滤聚合结果)、专门用于 直接过滤窗口函数结果(比如取排序第 1)的关键词是 QUALIFY(Spark 3.0 及以上版本支持)。
 
QUALIFY 是窗口函数的 “专用过滤子句”,无需嵌套子查询 / CTE,直接在主查询中写窗口函数条件,语法比传统的 “子查询 +WHERE rn=1” 更简洁,功能完全等价于过滤窗口函数的位次结果。

核心用法:QUALIFY + 窗口函数 = 1

SELECT 列1, 列2, ...
FROM 表名
-- 直接在 QUALIFY 中写窗口函数,筛选排序第1的记录
QUALIFY 窗口函数() OVER (
    PARTITION BY 分组列  -- 可选:分组取第1,无则全局取第1
    ORDER BY 排序列 [ASC/DESC]
) = 1;

  

posted @ 2025-11-25 11:19  soccerchen  阅读(0)  评论(0)    收藏  举报