sql - 基于数据中不连续的日期的多天变化
问题描述
见表 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
解决方案
使用lag()
:
select t.*,
(sales - lag(sales) over (order by date)) as dod_move
from t;
推荐阅读
- python - 配置解析器重复部分 python2 vs python3
- python - 计算来自多个文件的字符串(新闻源活动)
- python - 轴上的数字和 Matplotlib 中的轴标签具有相同的字体
- javascript - Cookie 消息每次点击/提交按钮仅显示一次接受
- vim - 在 Vim 中重新映射逗号
- javascript - 为什么点击编辑时没有出现警告框?
- django - 与带有 UUIDField 的模型一起使用时,GenericForeignKey 得到错误的 id
- pdf - 从 gsp 页面生成 PDF
- javascript - 谷歌地图 - ajax 更新图标
- raspberry-pi3 - 使用 mpg123 拉伸播放多个音频的 ALSA 问题(杰西很好!) Raspberry PI