我正在学习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
但是,对于旧版本,它可能不会更新。