2013-11-23 3 views
0

날짜 간격으로 분할 할 수있는 데이터 세트가 있습니다. 그것은 긁힌 웹 데이터의 무리이며 각 항목은 유닉스 스타일의 밀리 초 타임 스탬프와 표준 UTC datetime을 가지고 있습니다.날짜 간격으로 쿼리하는 SQL

나는 다양한 시간 간격에 가장 가까운 행 골라, 데이터 세트를 조회 할 수 있도록하고 싶습니다

: 는 예 : 모든 시간 등 하루에 한 번, 일주일에 한 번이,

이를 타임 스탬프가 간격 시간에 균등하게 떨어지는 것을 보장하지 않습니다. 그렇지 않으면 타임 스탬프에 대한 mod 쿼리 만 수행합니다.

저장된 procs 또는 일종의 사전 계산 된 지원 테이블과 관련이없는 SQL 명령으로이를 수행 할 수있는 방법이 있습니까?

최신 MariaDB를 사용합니다.

편집 : 마킹 대답은 매우 내 특정 질문에 대답하지 않고 그렇게 내가 나서서을 표시 더 일반화 된 문제에 괜찮은 대답이다.

저는 타임 스탬프가 매우 가변적 인 데이터 집합을 쿼리하고 정기적 인 시간 간격에 상당히 가까운 행을 찾아내는 방법을 찾고있었습니다. 예 : 지금부터 24 시간 간격에 가장 가까운 모든 행을 가져옵니다.

문제를 해결하기 위해 계수 쿼리를 사용했습니다. timestamp % interval < 데이터 포인트 간의 평균 간격. 이따금 씩 여분의 점수를 얻었고 그리워했지만 그래픽 응용 프로그램에 충분했습니다.

그리고 나는 항상 node-mysql 라이브러리가 망가져 MongoDB로 옮겼습니다.

답변

0

'다양한 시간 간격과 가장 가깝게'라고 말하고 '매시간/일/주'라고 말하면 실제 구현은 실제로 원하는 것에 달려 있지만 표준 날짜/시간 호스트를 사용할 수 있습니다 시간에 의해

SELECT DATE(your_DateTime) AS Dt, COUNT(something) AS CT 
FROM yourTable 
GROUP BY DATE(your_DateTime) 

횟수 : 하루에 의해 계산 예를 들어 그룹 레코드 기능, https://mariadb.com/kb/en/date-and-time-functions/

:

SELECT DATE(your_DateTime) AS Dt,HOUR(your_DateTime) AS Hr, COUNT(something) AS CT 
FROM yourTable 
GROUP BY DATE(your_DateTime), HOUR(your_DateTime) 

여기에 지원 날짜와 시간 함수의 전체 목록을 참조하십시오

관련 문제