Impala max() 在窗口子句上

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

我有一个如下所示的查询:

SELECT name, 
       time, 
       MAX(number) OVER (PARTITION BY name 
                         ORDER BY time 
                         ROWS BETWEEN 10 PRECEDING AND CURRENT ROW)
FROM some_table

由于某种原因,MAX() 没有实现在固定窗口上聚合,因为我收到以下错误:

'max(number)' is only supported with an UNBOUNDED PRECEDING start bound

(将

MAX
替换为
SUM
正如人们所期望的那样。)

有解决方法吗?我还希望能粗略地解释为什么这适用于

SUM
COUNT
但不适用于
MAX
MIN

我目前使用的是 Impala 2.7.0。

sql impala
2个回答
0
投票

我遇到了同样的问题。 尝试 Hive 而不是 Impala。没有这个问题。

文森特


0
投票

您可以使用以下查询。

 SELECT name, 
       time, 
       MAX(number) OVER (PARTITION BY name 
                         ORDER BY time 
                         ROWS BETWEEN UNBOUNDED PRECEDING AND 10 FOLLOWING)
FROM some_table
© www.soinside.com 2019 - 2024. All rights reserved.