繁体   English   中英

从雪花中的开始日期和结束日期列创建日期数组

[英]Create date array from start date and end date columns in Snowflake

我想从 Snowflake 表中的两列中创建一个日期数组。 在下面的示例中,如何添加包含 start_date 和 end_date 之间所有日期的数组的第三列? 它可以使用 UDF 工作,但我无权这样做。

 select current_date as start_date, dateadd(day, 10, current_date) as end_date

这是我想要的结果: 在此处输入图像描述

获取此查询并不简单,但它确实有效:

select init_date, end_date
  , array_agg(init_date+x-1) within group (order by x asc)
from date_ranges
join (select x from (select row_number() over(order by 0) x from table(generator(rowcount => 1000))))
where x<=end_date-init_date+1
group by init_date, end_date
;

在此处输入图像描述

(我必须加入一系列连续的数字才能得到想要的结果)

您可以使用此设置进行测试:

create or replace temp table date_ranges as
select '2019-12-29'::date init_date, '2020-01-03'::date end_date
union all select '2021-02-26', '2021-03-02'
;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM