我想按时间范围GROUP by
数据。这个例子我有start_date
和end_date
,我想要在start_date
范围内的end_date
和25
之间分开的范围,并从value
到1
中获得总和25
。
我的桌子的简单介绍:
select * from t1
where time between start_date and end_date
表t1有:
time 2019-10-01 value 50
time 2019-10-01 value 50
time 2019-10-02 value 50
time 2019-10-02 value 50
time 2019-10-02 value 50
time 2019-10-02 value 50
time 2019-10-03 value 50
time 2019-10-04 value 50
time 2019-10-05 value 50
time 2019-10-05 value 50
time 2019-10-05 value 50
start_date 2019-10-01
end_date 2019-10-25
[generate_series
函数以在]上分开>
2019-10-01 2019-10-02 2019-10-03 2019-10-04 2019-10-05 2019-10-06 2019-10-07 2019-10-07 2019-10-07 2019-10-08 2019-10-09 2019-10-10 2019-10-11 2019-10-12 2019-10-13 2019-10-14 2019-10-15 2019-10-16 2019-10-17 2019-10-18 2019-10-19 2019-10-20 2019-10-21 2019-10-22 2019-10-23 2019-10-24 2019-10-25
并通过这25求和
2019-10-01
的值为100
2019-10-02
的值为400
我想按时间范围按数据分组。该示例具有start_date和end_date,并且我希望start_date和end_date之间在25范围内分开,并获得从1到25的总和值。Simple ...
我知道您想生成一个天数列表,并为每一天计算一列的总和:
假设start_date
和end_date
是变量,您可能想尝试以下CTE
。它将按CTE
的时间总和进行分组。
我将建议使用横向连接: