我有这个脚本,每隔3个月生成一列中的日期:
select
extract(year from end(pd)) * 100 + extract(month from end(pd)) as ym
,last_day(end(pd)) as mth
from sys_calendar.calendar
where calendar_date = date '2015-02-28'
expand on period(add_months(calendar_date,-3), add_months(calendar_date,12))
as pd by interval '3' month
输出是:
ym mth
201502 2015-02-28
201505 2015-05-31
201508 2015-08-31
201511 2015-11-30
201602 2016-02-29
我想添加一个如下所示的列:
ym mth label
201502 2015-02-28 Interval_0
201505 2015-05-31 Interval_1
201508 2015-08-31 Interval_2
201511 2015-11-30 Interval_3
201602 2016-02-29 Interval_4
有没有办法动态生成最后一列?此脚本的修改版本将成为查询的一部分,该查询将为分区表中的帐户提取month_end_date,然后在该month_end_date之外的3个月间隔内生成日期,为期1年。
输出需要进入电子表格进行进一步分析,“标签”列允许我将日期标记为属于某个间隔。