我有以下简单的表格:
ID TIMESTAMP VALUE
4 2011-05-27 15:50:04 1253
5 2011-05-27 15:55:02 1304
6 2011-05-27 16:00:02 1322
7 2011-05-27 16:05:01 1364
我想平均VALUES
, and GROUP
each TIMESTAMP
一天分成 6 个小时的桶。例如 00:00 至 06:00、06:00 至 12:00、12:00 至 18:00 和 18:00 至 00:00。
我可以使用以下查询按年、月、日和小时进行分组:
select avg(VALUE),
EXTRACT(year from TIMESTAMP) AS year,
EXTRACT(month from TIMESTAMP) AS month,
EXTRACT(day from TIMESTAMP) as day
from TABLE
group by year,month,day
但我无法将每天分为上面定义的 4 个时段,非常欢迎任何帮助。
我认为对(时间戳的小时/ 6)商的整数值进行分组应该会有所帮助。尝试一下,看看是否有帮助。
你的分组依据应该是这样的
group by year, month, day, trunc(EXTRACT(hour from TIMESTAMP) / 6)
这背后的逻辑是,当日期的小时部分除以 6 时,int 值只能是
0 - 0:00 - 5:59:59
1 - 6:00 - 11:59:59
2 - 12:00 - 17:59:59
3 - 18:00 - 23:59:59
使用此分组应该将您的数据每天分为 4 组,这正是您所需要的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)