【问题标题】:create multiple rows for each month from date range从日期范围内为每个月创建多行
【发布时间】:2021-01-20 11:29:09
【问题描述】:

源有类似的数据 列1|列2|列3|列4|列5|开始日期|结束日期

一个 |乙|一个|乙|一个| 2021 年 1 月 1 日| 2021 年 4 月 1 日|

是否可以在netizza中使用查询获取如下数据

列 1|列2|列3|列4|列5|月份

一个|乙|一个 |乙|一个 | 21 年 1 月 1 日

一个|乙|一个 |乙|一个 | 21 年 2 月 1 日

一个|乙|一个 |乙|一个 | 21 年 3 月 1 日

一个|乙|一个 |乙|一个 | 21 年 4 月 1 日

【问题讨论】:

    标签: sql netezza


    【解决方案1】:

    当然,您需要一个时间维度并针对它执行“中间连接”:

    Create temp table TimeDim as
    Select ‘2010-01-01’::date+((datasliceid-1) || ‘ months’)::interval as FirstDayOfMonth
    From _v_dual_dslice
    ;
    

    然后是中间连接:

    Select * from YourTable join TimeDim
    On FirstDayOfMonth between Start_date and End_Date
    ;
    

    你能关注吗?

    拉尔斯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-29
      相关资源
      最近更新 更多