【StarRocks】-- 深入理解 StarRocks 窗口函数 LAG()
目录
深入理解 StarRocks 窗口函数 LAG()
为什么需要 LAG()
定义
语法
工作原理(直观理解)
基础示例
分区 + 多步回看
忽略 NULL 的回看(如版本支持 IGNORE NULLS)
配合 QUALIFY 做过滤
与 LEAD() 的对比
常见应用场景
注意事项与最佳实践
常见错误示例
进阶小贴士
深入理解 StarRocks 窗口函数 LAG()
参考与延伸阅读:StarRocks 3.5 文档 · 窗口函数 LAG(含总体窗口函数说明)
https://docs.starrocks.io/docs/3.5/sql-reference/sql-functions/Window_function/#lag
为什么需要 LAG()
在时间序列或序列化的明细数据中,我们经常需要“拿到当前行前面第 N 行的值”,以做环比、差值、留存、状态变更检测等分析。LAG()
正是为此设计的:它在不聚合的情况下,让你在结果集中直接访问“前一行(或前 N 行)”的字段值。
定义
LAG(expr [, offset [, default]]) OVER (PARTITION B