在 Spark sql 中的窗口函数上使用 having 子句的语义是什么?



我正在学习Spark sql,并注意到这是可能的:

SELECT   a, b, 
         Row_number() OVER (partition BY a, b ORDER BY start_time DESC ) AS r ,
         Count(*) OVER (partition BY a, b)                       AS count
FROM     tbl 
WHERE    ...  
**HAVING r <= 10**

据我所知,拥有子句只能应用于分组依据子句中的聚合。Impala 无法识别此语法,也没有记录在我能够找到的唯一 spark sql 参考中。

这是怎么回事?语义是否与在外部查询的 where 子句中放置相同的条件相同(就像我通常所做的那样?

此问题

现已解决 - 请参阅此处 https://issues.apache.org/jira/plugins/servlet/mobile#issue/IMPALA-2215

但是,对于旧版本,它可能不会更新。

最新更新