【发布时间】:2021-10-22 05:04:20
【问题描述】:
我正在运行类似于以下内容的查询,以累积截至日期的 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 中“保存”一个窗口,或者在同一个窗口上使用多个功能?
【问题讨论】:
-
大多数数据库都支持
FROM子句中的标准WINDOW定义。但是,根据文档,Presto 似乎不支持这一点:prestodb.io/docs/current/sql/select.html。 -
也只是供参考 Trino(PrestoSQL 的更名版本)supprotsWINDOW 定义。
标签: sql window-functions presto trino