在PostgreSQL中按时间范围按数据分组

问题描述 投票:0回答:3

我想按时间范围GROUP by数据。这个例子我有start_dateend_date,我想要在start_date范围内的end_date25之间分开的范围,并从value1中获得总和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的值为1002019-10-02的值为400

我想按时间范围按数据分组。该示例具有start_date和end_date,并且我希望start_date和end_date之间在25范围内分开,并获得从1到25的总和值。Simple ...

sql postgresql
3个回答
0
投票

我知道您想生成一个天数列表,并为每一天计算一列的总和:


0
投票

假设start_dateend_date是变量,您可能想尝试以下CTE。它将按CTE的时间总和进行分组。


0
投票

我将建议使用横向连接:

© www.soinside.com 2019 - 2024. All rights reserved.