繁体   English   中英

自定义周数 SQL

[英]Custom Week Number SQL

我需要将以下逻辑转换为 python 和 SQL (SQL 查询更 imp):

我有一个包含 ID 和日期列的表。 我需要添加一个名为“Week_Num”的列,以便:

  1. 每次看到一个新的 ID,Week_Num 就变成 1
  2. 7 个日期对应 1 周,因此如果第一周从 2019 年 10 月 29 日开始,那么第二周将从 2019 年 11 月 5 日开始。这将持续到 ID 不变。 例如,在下表中,ID=24 的第 1 周将从 2019 年 10 月 29 日至 2019 年 11 月 4 日,而 ID=25 的第 1 周将从 2020 年 10 月 25 日至 2020 年 10 月 31 日。
ID 日期 周数
24 2019-10-29 1
24 2019-10-30 1
24 2019-10-31 1
24 2019-11-01 1
24 2019-11-02 1
24 2019-11-03 1
24 2019-11-04 1
24 2019-11-05 2
24 ………… .
24 2020-03-14 .
25 2020-10-25 1
25 2020-10-26 1
25 2020-10-27 1
25 2020-10-28 1
25 2020-10-29 1
25 2020-10-30 1
25 2020-10-31 1

如何仅使用最小值的日期差异:

select t.*,
       floor(datediff(day,
                      min(date) over (partition by id order by date)
                      date
                     ) / 7.0
             ) + 1 as week_num
from t;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM