[英]How to select rows by time interval in PostgreSQL?
I have a table with timestamp field and usage field like this 我有一个表格,其中包含时间戳字段和使用字段
timestamp | usage
'2015-06-13 13:45:58' | 240
'2015-06-13 13:45:59' | 480
'2015-06-13 13:46:00' | 240
'2015-06-13 13:46:01' | 320
...
I want to get sum of usage for a period of '1 week' with '30 minutes' interval. 我希望获得一段时间“1周”和“30分钟”间隔的使用总和。 I can get data only for intervals in minute, hour, day and ...
我只能以分钟,小时,天和...的间隔获取数据。
SELECT date_trunc('minute', timestamp) as clock, sum(usage)
FROM my_table
WHERE timestamp > localtimestamp - INTERVAL '1 week'
GROUP BY clock
how to get data for intervals like '5 minutes', '30 minutes', '2 days' and ... . 如何获取“5分钟”,“30分钟”,“2天”等间隔的数据。
Use the following to get what your after. 使用以下内容获取您的后续内容。
SELECT TIMESTAMP WITH TIME ZONE 'epoch' + INTERVAL '1 second' * round((extract('epoch' FROM timestamp) / 1800) * 1800) AS clock, SUM(usage)
FROM my_table
WHERE timestamp > localtimestamp - INTERVAL '1 week'
GROUP BY round(extract('epoch' FROM timestamp) / 1800)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.