我正在尝试添加与下面和照片中的“期间”列等效的列(如果您可以查看)。您将如何添加一个列来指定给定日期所在的时间段,其中 NULL 值可以说是“分区”?
有效数据 | 身份证 | 覆盖dt | 期间 |
---|---|---|---|
1/1/23 | xxx | 1/1/23 | 1 |
2/1/23 | xxx | 2/1/23 | 1 |
3/1/23 | xxx | 空 | 空 |
4/1/23 | xxx | 4/1/23 | 2 |
5/1/23 | xxx | 5/1/23 | 2 |
6/1/23 | xxx | 空 | 空 |
7/1/23 | xxx | 6/1/23 | 3 |
我尝试过超前和滞后函数、CTE 等的不同变体,但我就是无法弄清楚。
我不确定你如何定义你的经期,但根据“照片”,你需要一个案例表达。
CASE WHEN Covereddt IS NULL THEN NULL
WHEN ValidDat BETWEEN '1/1/2023' AND '2/28/2023' THEN 1
WHEN ValidDat BETWEEN '3/1/2023' AND '6/30/2023' THEN 2
WHEN ValidDat BETWEEN '7/1/2023' AND '12/31/2023' THEN 3
END AS Period