【发布时间】:2015-02-02 12:43:35
【问题描述】:
您有以下数据:
KEY VALUE TIMESTAMP
-------------- ---------- -----------------------
0F8CE962 900 20141124054503
0F8CE962 900 20141124082431
0F8CE962 0 20141124083808
0F8CE962 0 20141124104408
0F8CE962 0 20141124105009
0F8CE962 0 20141124110213
0F8CE962 900 20141124110720
0F8CE962 900 20141125051641
0F8CE962 0 20141125054112
每一行都与接下来的大约 15 分钟“相距”,最后两行除外。 如果我执行:
select KEY, sum(VALUE), min(TIMESTAMP), max(TIMESTAMP)
from myTable
group by KEY
我明白了(当然)
KEY sum(VALUE) min(TIMESTAMP) max(TIMESTAMP)
-------------- ---------- ----------------------- -----------------------
0F8CE962 3600 20141124054503 20141125054112
我需要的是只聚合不同的行,一旦订购,最多 15 分钟。这就是我想要的:
select KEY, sum(VALUE), min(TIMESTAMP), max(TIMESTAMP)
from myTable
group by KEY
some_magic_function(max(15 minutes))
KEY sum(VALUE) min(TIMESTAMP) max(TIMESTAMP)
-------------- ---------- ----------------------- -----------------------
0F8CE962 2700 20141124054503 20141124110720
0F8CE962 900 20141125051641 20141125054112
有可能吗?
【问题讨论】:
-
TIMESTAMP的格式是什么?如果是 YYYYMMDDHH24MISS 则 05:45:03
-
是的,它是 YYYYMMDDHH24miss。请注意最后两行是 11/25,前两行是 11/24 :-)
标签: sql oracle column-aggregation