重复相同的窗口的几个功能在Presto?



我正在运行一个类似于下面的查询,以在7天的窗口中累积到日期的正数和总事件的总和。

SELECT
first_value(date) OVER (ORDER BY date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) AS date_left,
last_value(date) OVER (ORDER BY date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) AS date_right,
sum(positives) OVER (ORDER BY date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) AS events,
sum(events) OVER (ORDER BY date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) AS total
FROM
data

虽然这个查询工作,但它不是很漂亮,因为它重复了相同的长窗口规范4次。

有没有办法"保存"?Presto中的一个窗口,还是在同一个窗口上使用几个函数?

为了回应@Gordon Linoff和@Guru Stron在评论中所说的,PrestoDB确实支持窗口函数,但不支持WINDOW子句。然而,Trino(以前的PrestoSQL)支持WINDOW,并且Trino最近在今年早些时候增加了更多的特性。如:

  • 完全支持RANGE帧类型
  • 支持GROUPS帧类型
  • 更多支持WINDOW子句。

如果你的团队需要这些类型的功能,我建议升级到Trino。

相关内容

最新更新