One minute
Week1040_Tip
Tip - 窗口函数 Lead, Lag
近来接触了SQL中的 window function . 窗口函数主要作用在对结果集 跨越操作, 如上一条记录、行号、排序等。
平时使用最多的是 row_numer, 作为行号来处理,
随之的是 rank, dense_rank, 近来有一个需求是比较今天、昨天的差额,就用到了适合临近行的 Lead 和 Lag
window function的结构:
window_function ( expr ) OVER (
PARTITION BY ...
ORDER BY ...
frame_clause
)
LEAD, LAG
首先字面意思理解, Lead代表领先的, LAG慢的,落后的, 都是一个相对概念, 相对的就是 current row.
在使用时候,比较模糊的是 Lead领先 current row, 是向上领先还是向下领先?
- jack 23
- rose 24
- bob 34
- jim 14
比如 current row 是 3 bob, 那么 lead(bob), 是2 rose 还是 jim? 其实和 over函数的排序有关
lead(name) over(order by id asc) ,那么就是jim.
LAG正好是相反的。
Read other posts