SQL 组日期(按 8 周)划分

sql group dates by 8 week period

提问人:Thiago Lima 提问时间:11/15/2023 更新时间:11/15/2023 访问量:24

问:

我有一个我创建的 52 周表,基于工作日 = 星期日。 现在我需要将这些日期汇总为 8 周的组,但无法想出在这种情况下使用的逻辑,我看到了类似的情况,但没有一个有用。

enter image description here

我没有太多的SQL经验,所以我可能错过了一些明显的解决方案。 任何帮助将不胜感激

ps. 数据库是 Snowflake

sql 日期 snowflake-cloud-data-platform

评论


答:

0赞 Thiago Lima 11/15/2023 #1

我找到了解决问题的方法,这是代码示例:

...
    , temp_datas as (
        select 
            week_end_dt2,
            row_number() over (order by week_end_dt2 desc) as row_num
        from calendar
    )
    , temp_groups as (
        select 
            week_end_dt2,
            ceil(row_num / 8.0) as group_num
        from temp_datas
    )
    select 
        calendar.*,
        temp_groups.group_num
    from calendar
    left join temp_groups on calendar.week_end_dt2 = temp_groups.week_end_dt2;