提问人:user3737377 提问时间:11/26/2021 最后编辑:Daiuser3737377 更新时间:11/26/2021 访问量:42
SQL:按大小写分组以设置两个条件的值
SQL : Group by with case to set values for both conditions
问:
前提条件:[我使用周作为星期日作为一周的第一天] 我有如下表“#TT”
Column -> D_Date
----------
2020-12-27 |
2020-12-28 |
2020-12-29 |
2020-12-30 |
2020-12-31 |
2021-01-01 |
2021-01-02 |
我想获取日期的周数,如果年末有新的一年开始,我想将新年的第一周标记为 0,如果它的天数贡献少于 4 天,即
根据美国周
2020-12-27 from this **53rd** start
2020-12-28
2020-12-29
2020-12-30
2020-12-31
2021-01-01
2021-01-02 and end at here
上面从 27 到 31 是 2020 年的 5 天,而 2021 年的 1 和 2 是 2 天,因此大多数天是 2020 年而不是 2021 年。 现在我想将 2021 年的周数标记为 0,表示日期 1 和 2 而不是 1
我正在使用下面的查询,但它也减少了我最少一年的周数。如何实现这一点?请帮帮我。
SELECT
DATEPART( week, D_Date ),
CASE
WHEN COUNT( DATEPART( week, D_Date ) ) > 1 THEN MAX( DATEPART(week, D_Date ) - 1 )
ELSE DATEPART( week, D_Date )
END AS [State]
FROM
#tt
GROUP BY
DATEPART( year, D_Date ),
DATEPART( week, D_Date );
答: 暂无答案
评论
DATEPART( iso_week, ... )