如何在PostgreSQL中一次性查询指定时段的间隔化使用统计数据?
PostgreSQL 按时间间隔统计使用时长
环境与数据表
- SQL类型:PostgreSQL
- 数据表:
tpm_data
- 表字段说明:实际表包含JSONB字段,其中包含
from、to字段,本次问题不涉及该部分内容 - 表用途:记录用户的使用情况(如订阅服务),示例数据如下:

查询需求
在指定时间范围内,按特定时间间隔统计用户的使用时长数据。
示例参数与预期结果
- 参数:时间范围为
2023-02-10 11:00至2023-02-10 18:00,时间间隔为1小时 - 预期结果:
| From | To | Duration |
|---|---|---|
| 2023-02-10 11:00 | 2023-02-10 12:00 | 0 |
| 2023-02-10 12:00 | 2023-02-10 13:00 | 4 min 45 s |
| 2023-02-10 13:00 | 2023-02-10 14:00 | 36 min 15 s |
| 2023-02-10 14:00 | 2023-02-10 15:00 | 51 min 23 s |
| 2023-02-10 15:00 | 2023-02-10 16:00 | 1 hour |
| 2023-02-10 16:00 | 2023-02-10 17:00 | 1 hour |
| 2023-02-10 17:00 | 2023-02-10 18:00 | 1 hour |
当前尝试
已使用date_bin和generate_series函数进行查询,但未能得到符合预期的结果。
内容的提问来源于stack exchange,提问作者Aleksandr Šmailov
相关产品推荐
相关产品推荐

