如何将时间戳值聚合为15个MI?

时间:2016-10-18 10:58:43

标签: sql oracle

我有一些特定时间的值,如

  Time                          Value
  18/10/2016 00:00:00           10
  18/10/2016 00:05:00           20
  18/10/2016 00:10:00           30
  18/10/2016 00:15:00           40
  18/10/2016 00:20:00           50
  18/10/2016 00:25:00           60
  18/10/2016 00:30:00           70

我想把它聚合到15分钟的数据。我的聚合应该是在18/10/2016 00:15:00,它应该花费5分钟,10分钟和15分钟的平均值来给出第15分钟的数据。

我的输出应该像

  Time                          value
  18/10/2016 00:15:00           30
  18/10/2016 00:30:00           60

有没有办法在oracle中获得这个?

1 个答案:

答案 0 :(得分:0)

这是一种方法:

select (trunc(time, 'HOUR') + 15 * trunc(extract(minute from time) / 15) / (60 * 24)) as time,
       sum(value)
from t
group by (trunc(time, 'HOUR') + 15 * trunc(extract(minute from time) / 15) / (60 * 24));