- 【偏移分析函数】
- lag(字段名,偏移量[,默认值])over()
- 向上取
- lag(confirmed,1)over(partition by name order by whn)
- 前一天总数
- (confirmed - lag(confirmed,1)over(partition by name order by whn))
- 今天的总数减昨天的总数=当天confirmed人数
- lead(字段名,偏移量[,默认值])over()
- 向下取
- lag(字段名,偏移量[,默认值])over()
- 例题链接:(链接中标号2)Window LAG - SQLZoo 涉及数据表:<covid>
- 【例题30】查询法国和德国1月每天新增确诊人数,最后显示国家名、标准日期(2020-01-27)、当天截至时间累计确诊人数、昨天截至时间累计确诊人数、每天新增确诊人数,按照截至时间排序
-
- 【运行代码】
-
- select
name
,date_format(whn,'%Y-%m-%d') date
,confirmed 当天截至时间累计确诊人数
,lag(confirmed,1)over(partition by name order by whn) 昨天截至时间累计确诊人数
,(confirmed - lag(confirmed,1)over(partition by name order by whn)) 每天新增确诊人数
from covid
where name in ('France','Germany') and month(whn) = 1
order by date
- select
- 【运行结果】
学习途径:B站戴戴戴师兄SQL课程