我(想我)想创建一个包含序列的视图或临时表。该表的目的只是提供制作面板数据集所需的值。我想做的是以编程方式创建这个序列,使用两个时期之间的每个值,比如 0 和 365,间隔为 7(比如制作一个每周面板)。
这是如何“手动”完成的,手动插入每个截止日期。
create table time_periods (day_cutoff int);
insert into time_periods values (7);
insert into time_periods values (14);
insert into time_periods values (28);
insert into time_periods values (35);
insert into time_periods values (42);
然后将按原样使用该表(对billing_records
包含计费时间的临时实例的下级表进行完整的笛卡尔连接。
select
buyer
, seller
, day_cutoff
, sum(case when billing_day < day_cutoff
then amount
else 0.0 end) as cumulative_spend
from time_periods
left join billing_records
on 1 = 1
group by buyer, seller, day_cutoff