前言
本篇将通过示例讲解:偏移分析函数+over()
一、偏移分析函数概念
-
lag(col,n,default):用于统计分组内往上第n行值。
- 第一个参数为列名
- 第二个参数为往上第n行(可选,不填默认为1)
- 第三个参数为默认值(当往上第n行为NULL时候,取默认值,如不指定,则为NULL)
-
lead(col,n,default):与lag相反,统计分组内往下第n行值。
- 第一个参数为列名
- 第二个参数为往下第n行(可选,不填默认为1)
- 第三个参数为默认值(当往下第n行为NULL时候,取默认值,如不指定,则为NULL)
-
first_value(col):用于取分组内排序后,截止到当前行,第一个col的值。
-
last_value(col):用于取分组内排序后,截止到当前行,最后一个col的值。
二、示例讲解
2.1 案例
查询出用户【yantian】和【lisi】的时间偏移(前N行)
分析:通过lag()窗口函数进行实现
SELECT
user_name,
pay_time,
lag( pay_time, 1, pay_ti