2012-11-23 6 views
4

h2 데이터베이스를 사용하여 타임 스탬프를 기준으로 항목을 그룹화하면서 평균 값을 가져 오려고합니다.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이 없음).

답변

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; 
+0

고맙습니다. 바로 그게 내가 찾고있는 것입니다. – pitseeker