如何计算 SQL 的周环比变化?
How to calculate week over week changes in SQL?
我有一个包含 3 列的数据 table:周、类型和单位。我想计算每个类型的单位每周变化,结果 table 将是这样的:
Week Type Units Change
2020-12-01 A 10 null
2020-12-01 B 15 null
2020-12-01 C 20 null
2020-12-01 D 18 null
2020-12-08 A 20 10
2020-12-08 B 15 0
2020-12-08 C 25 5
2020-12-08 D 15 -3
...
我尝试使用滞后函数但失败了,可能是因为我不知道在分区依据和排序依据中使用什么。有人可以帮我吗?
由于您希望之前的“单位”用于相同的“类型”,因此分区位于“类型”上。
SELECT *
, Units - LAG(Units) OVER (PARTITION BY [Type] ORDER BY [Week]) AS Change
FROM data_table
我有一个包含 3 列的数据 table:周、类型和单位。我想计算每个类型的单位每周变化,结果 table 将是这样的:
Week Type Units Change
2020-12-01 A 10 null
2020-12-01 B 15 null
2020-12-01 C 20 null
2020-12-01 D 18 null
2020-12-08 A 20 10
2020-12-08 B 15 0
2020-12-08 C 25 5
2020-12-08 D 15 -3
...
我尝试使用滞后函数但失败了,可能是因为我不知道在分区依据和排序依据中使用什么。有人可以帮我吗?
由于您希望之前的“单位”用于相同的“类型”,因此分区位于“类型”上。
SELECT *
, Units - LAG(Units) OVER (PARTITION BY [Type] ORDER BY [Week]) AS Change
FROM data_table