我正在学习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子句中放置相同条件相同(就像我通常会这样?)
此问题现已解决 - 请参阅此处https://issues.apache.org/jira/plugins/servlet/mobile#issue/IMPALA-2215
但是,旧版本可能无法更新。