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

问题描述 投票:0回答:1

我正在学习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**

据我所知,having子句只能应用于group-by子句中的聚合。 Impala不识别这种语法,也没有记录在spark sql的唯一reference I was able to find中。

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

apache-spark apache-spark-sql having having-clause
1个回答
0
投票

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

但是,旧版本可能无法更新。

© www.soinside.com 2019 - 2024. All rights reserved.