Menu
CoddyTech

LEAD 和 LAG 函数

Coddy 高级 SQL 课程的第 6 课,共 13 课。

Lead 和 Lag 函数可以获取当前行之前或之后 n 步的值。

例如,如果我们想计算当前行与一个月前的公司收入比率,就需要提取两个月前的值:

idrevenuemonth
15325
24926
33937
47238
SELECT id, revenue, LAG(month, 1) OVER (ORDER BY MONTH) as prev_month_revenue
FROM table1 ORDER BY id

这会生成下面的表:

idrevenueprev_month_revenue
1532 
2492532
3393492
4723723

这样我们就能计算 prev_month_revenue/revenue 比率。

如果改用 LEAD 函数,则会获取每一行下个月的值:

idrevenuenext_month_revenue
1532492
2492393
3393723
4723 
challenge icon

挑战

简单

空调可能非常贵。随着时间推移,它们变得更高效、更强劲,但这些改进的意义并不会每天都显现出来。我们需要拉长时间范围,才能看到这些改进。

为此,计算每个 id 和 month 对应的空调 efficiency 和 strength 的平均值。然后,获取当前月份以及两个月前的 efficiency 与 strength 的比值。最后,计算当前月份的比值与两个月前的比值之间的比值。返回比值大于 1.5 的结果。将此列命名为 ratio_two_months。

亲手试试

高级 SQL中的所有课

自己练习: Python 在线编译器