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能力成长 × 效率工具探索

上一篇 下一篇

猜你喜欢

热点阅读