SQL实战 | 窗口函数LAG():计算一周新增病例
2025-07-24 本文已影响0人
AureSong
一 题目
计算意大利(Italy)每周一的新增确诊人数(new cases)。
二 数据表结构:
数据表 covid 是某份关于某疾病的统计表:
name:国家
whn:时间(完整的国际标准时间格式,如:Wen, 22 Jan 2020 00:00:00 GMT)
confirmed:确诊病例数(累计)
三 参考答案:
参考答案1:
参考答案2:
四 输出结果
五 技术说明
1. LAG(confirmed) OVER(PARTITION BY name ORDER BY whn):
对每个国家,按照时间顺序排序,给到上一行的确诊病例数
2. DATE_FORMAT(whn, '%Y-%m-%d'):
把时间转成常用时间格式“YYYY-MM-DD”
3. WEEKDAY(whn) = 0:
筛选时间为每周一
4. DATE_ADD(whn, INTERVAL -7 DAY):
返回7天前的日期
5. name 不是主键也能 JOIN 吗:
可以,只要“name + 日期”能唯一匹配,就可以 JOIN
说明:
本题参考自 SQLZoo(sqlzoo.net),内容为个人学习总结,欢迎交流分享,转载请注明来源
— END —
数据分析,一起努力。
Thryze|数据分析 × AI能力成长 × 效率工具探索