使用h2数据库我希望在根据时间戳对条目进行分组时获取列的平均值。
我的表格如下:
TIME SID SERVICE TET
2012-11-21 11:31:45.433 164DSQL0L4JW7 service1 3868
2012-11-21 11:31:45.608 164DSS6TJS321 service2 350
2012-11-21 11:31:45.711 164DSROS9DNXA service2 285
2012-11-21 11:31:45.766 164DSH2PMPY4M service1 4044
2012-11-21 11:31:45.778 164DSOGRCKG8J service1 4248
2012-11-21 11:31:45.82 164DSRMV0QMFT service1 3766
2012-11-21 11:31:46.089 164DSP1L9W6MC service1 4257
2012-11-21 11:31:46.226 164DSOPUNUFJF service3 703
2012-11-21 11:31:46.752 164DSLJHST6E8 service3 411
2012-11-21 11:31:46.781 164DSHPI1T3J9 service3 393
2012-11-21 11:31:45.24 164DSQI4RY330 service2 235
2012-11-21 11:31:45.268 164DSPRDHROQN service2 197
2012-11-21 11:31:45.991 164DSRUUGQ8LN service2 380
2012-11-21 11:31:46.338 164DSMARDXMD3 service3 783
我想提取按TET列分组的TET列的平均值。 我希望区间灵活(例如15秒,另一个查询5分钟)。
我发现这个question几乎是我所需要的,但不幸的是我无法让任何解决方案在H2中工作(没有strftime)。
答案 0 :(得分:1)
H2支持许多日期和时间函数,例如DATEDIFF和DATEADD。例如:
drop table if exists test;
create table test(id int primary key, ts timestamp);
insert into test
select x, dateadd(s, x, now()) from system_range(1, 100);
select dateadd(s, datediff(s, now(), ts) / 10 * 10, now()) as diff,
avg(id) from test group by diff order by diff;