우리는 'YYYY-mm-dd'
의 형식으로 DATE_FROM
과 DATE_TO
두 개의 입력을 가지고 있는데, 질문은 [DATE_FROM, DATE_TO)
과 [DATE_FROM -INTERVAL(DATE_TO,DATE_FROM), DATE_FROM)
의 레코드 수를 세는 것입니다. 과거 동일한 시간 간격에있는 레코드 수를 계산하는 방법은 무엇입니까?
SELECT
count(*) as num_records
FROM mytable
WHERE
mytable.date_doc >= 'DATE_FROM 00:00:00'
AND mytable.date_doc <= 'DATE_TO 23:59:59'
을 수행하는 첫 번째 구간의 레코드 수를 계산하려면 : 분 : 초는 경계에있는 일의 모든 레코드를 힙.
두 번째 시간 inteval에서 같은 수를 수행하는 쿼리를 작성하는 방법은 무엇입니까?
데이터베이스에 하나의 쿼리로 수행하거나 최적의 방법을 제안 할 수 있습니까?
EDIT
인터벌 1 (십일) DATE_FROM = '2012년 11월 12일 23시 59분 59초'
'2012년 11월 3일 0시 0분 0초'DATE_TO간격 2 (십일) : DATE_FROM = '2012년 10월 24일 0시 0분 0초', DATE_TO = '2012년 11월 2일 23시 59분 59초'
SELECT
SUM(IF(DATE(mytable.date_doc) BETWEEN '2012-11-03 00:00:00' AND '2012-11-12 23:59:59', 1, 0)) AS count_interval1,
SUM(IF(DATE(mytable.date_doc) BETWEEN '2012-10-24 00:00:00' AND '2012-11-03 00:00:00', 1, 0)) AS count_interval2
FROM mytable
은 전문 지식을 주셔서 감사합니다!
업데이트 된 답변 확인 –