簡體   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