| 语法 | func() OVER ([PARTITION BY …] [ORDER BY …] [ROWS BETWEEN …]) |
|---|---|
| 常用函数 | row_number、rank、dense_rank、lagInFrame、leadInFrame、sum/avg OVER |
| 命名窗口 | WINDOW w AS (PARTITION BY …),多个表达式复用 |
示例
示例
SELECT
user_id,
ts,
sum(value) OVER (
PARTITION BY user_id
ORDER BY ts
ROWS BETWEEN 2 PRECEDING AND CURRENT ROW
) AS rolling3
FROM metrics
ORDER BY user_id, ts;窗口函数在结果集上计算,内层查询先做好过滤与聚合能显著降低内存与耗时。