总销售额中的每日销售额



我有一个看起来像这样的数据库:

Total_Volume
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

在此处查看演示。

最新更新