2013-08-05 3 views
2

내 통계 문제에 대한 해결책을 찾고 있는데요.SQL 테이블 : 10 초 간격으로 합계

테이블에 날짜 열이 하나있는 테이블이 있습니다. 이제 내가하고 싶은 10 초의 일정한 시간 간격의 행의 수를 계산이다 : 간격 AS ...,

SELECT COUNT (ID) WHERE ... 간격

누구 아이디어 BY GROUP 내가 이것을 어떻게 할 수 있니?

감사합니다, 마르쿠스

+2

일부 샘플 데이터를 제공하고 결과를 기대하십시오. 당신의 질문은 당신이 생각하는 것처럼 거의 모호하지 않습니다. –

답변

1
SELECT 
    CONCATENATE(
    SUBSTR(
    DATE_FORMAT(yourtimestamp, '%Y%m%d%H%i%s') 
    , 1, -1) 
    , 0) AS time_bin, 
    COUNT(*) 
FROM yourtable 
WHERE ... 
GROUP BY CONCATENATE(
    SUBSTR(
    DATE_FORMAT(yourtimestamp, '%Y%m%d%H%i%s') 
    , 1, -1) 
    , 0) 

(사용 STR_TO_DATE() 다시 타임 스탬프로 변환하는) 또는 ...

SELECT FROM_UNIXTIME(
    10*FLOOR(UNIX_TIMESTAMP(yourtimestamp)/10) 
) AS time_bin, 
COUNT(*) 
FROM yourtable 
WHERE ... 
GROUP BY FROM_UNIXTIME(
    10*FLOOR(UNIX_TIMESTAMP(yourtimestamp)/10) 
) 
+0

다른 결과가 나오는 이유를 해결하기 위해 남겨 둡니다.) – symcbean

+0

감사합니다. 아름답게 작동합니다! – Markus