首页 > 解决方案 > 基于数据中不连续的日期的多天变化

问题描述

见表 A。每个日期有销售数量。日期不是连续的。我想要表 B,它给出了数据集中前一个日期的销售变动。

我正在尝试在 SQL 中执行此操作,但被卡住了。我可以通过输入日期来做一个单独的日差,但我想要一个不需要手动输入日期的日期

一个

Date         Sales
01/01/2019      100
05/01/2019      200
12/01/2019      50
25/01/2019      25
31/01/2019      200

Date            DOD Move
01/01/2019      -
05/01/2019      +100
12/01/2019      -150
25/01/2019      -25
31/01/2019      +175

标签: sql

解决方案


使用lag()

select t.*,
       (sales - lag(sales) over (order by date)) as dod_move
from t;

推荐阅读