如何计算 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