我有一个看起来像这样的数据库:
ID | Sale_Date(YYYY-MM-DD) | |
---|---|---|
123 | 2022-01-01 | 0 |
123 | 2022-01-02 | 2 |
123 | 2022-01-03 | 5 |
456 | 2022-04-06 | 38 |
456 | 2022-04-07 | 40 |
456 | 2022-04-08 | 45 |
你应该使用:
- 用于检索最后一个">Sale_Date"值的
LAG
窗口函数 COALESCE
将每个第一行的 NULL 替换为">总体积"的函数
然后从Total_Volume
的上一个值中减去Total_Volume
,如果LAG
的值为 NULL,则合并。
SELECT *,
COALESCE(`Total_Volume`
-LAG(`Total_Volume`) OVER(PARTITION BY `ID`
ORDER BY `Sale_Date(YYYY-MM-DD)`), `Total_Volume`) AS `Daily_Sale`
FROM tab
在此处查看演示。