0- 描述
描述:时间序列–构造累积日期
表名:t17
表字段及内容:
date_id
2017-08-01
2017-08-02
2017-08-03
1- 问题一
描述:每一日期,都扩展成月初至当天
输出结果如下所示:
date_id date_to_day
2017-08-01 2017-08-01
2017-08-02 2017-08-01
2017-08-02 2017-08-02
2017-08-03 2017-08-01
2017-08-03 2017-08-02
2017-08-03 2017-08-03
注:这种累积相关的表,常做桥接表。
参考答案:
select
t3.date_id,
date_add(trunc(t3.date_id, 'MM'), t3.pos) as dated
from (
select
tt2.date_id,
tt2.num,
pos,
pnum
from(
select
date_id,
datediff(date_id, trunc(date_id, 'MM')) as num
from t17
) tt2
lateral view
posexplode(split(space(tt2.num), '')) p as pos, pnum
)t3
where t3.pos <= t3.num
总结: 还是考察lateral view posrxplode的用法,炸开函数!!!