ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

QUALIFY 窗口过滤 - --

2026/8/7 8:48:47 拓冰建站 浏览量
QUALIFY 窗口过滤 - --

传统方式(使用CTE):

sql
WITH ranked_data AS (SELECT user_id,ip,country_code,os,RANK() OVER (PARTITION BY user_id ORDER BY log_datetime DESC) AS previous_loginsFROM login_logs
)
SELECT user_id, ip, country_code, os
FROM ranked_data
WHERE previous_logins = 1;

使用 QUALIFY 的方式:

sql
SELECT user_id,ip, country_code,os,RANK() OVER (PARTITION BY user_id ORDER BY log_datetime DESC) AS previous_logins
FROM login_logs
QUALIFY previous_logins = 1;

 

可以看到,使用 QUALIFY 减少了代码行数,避免了额外的嵌套层级,查询意图更加直观。需要注意的是,QUALIFY 主要带来的是代码简洁性和可读性的提升,在性能上可能不会有显著改善。

支持版本: Spark 3.2.0 及以上

 阿里云maxcompute sql也支持