QUALIFY 子句
允许过滤窗口函数的结果。它类似于 WHERE 子句,但不同之处在于 WHERE
在窗口函数评估之前执行,而 QUALIFY
在之后执行。
可以在 QUALIFY
子句中通过其别名引用 SELECT
子句中窗口函数的结果。或者,QUALIFY
子句可以根据查询结果中未返回的其他窗口函数的结果进行过滤。
限制
如果没有要评估的窗口函数,则不能使用 QUALIFY
。请改用 WHERE
。
示例
示例
SELECT number, COUNT() OVER (PARTITION BY number % 3) AS partition_count
FROM numbers(10)
QUALIFY partition_count = 4
ORDER BY number;
┌─number─┬─partition_count─┐
│ 0 │ 4 │
│ 3 │ 4 │
│ 6 │ 4 │
│ 9 │ 4 │
└────────┴─────────────────┘