我有一个如下所示的查询:
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。
我遇到了同样的问题。 尝试 Hive 而不是 Impala。没有这个问题。
文森特
您可以使用以下查询。
SELECT name,
time,
MAX(number) OVER (PARTITION BY name
ORDER BY time
ROWS BETWEEN UNBOUNDED PRECEDING AND 10 FOLLOWING)
FROM some_table