2013-07-04 2 views
1

15 분 내에 지정된 시간 (특정 날짜 등)에 사용자에 대해 얼마나 많은 호출이 예약되었는지 MySQL 쿼리를 실행하고 있습니다. 시간 간격. 지금까지 내가 가진 : 그것은하지만, 예를 들어 위의 코드를 생산하고, 그래서 내가 부족 마법 성분이, 각 간격에 할당 된 통화의 수 '수'있는 그대로MySQL에서 각 시간 간격의 레코드 수를 계산합니다.

SELECT 
date_action, 
DATE_FORMAT(date_action, "%i") AS minute, 
CASE 
    WHEN minute(date_action) BETWEEN 0 and 14 THEN '00' 
    WHEN minute(date_action) BETWEEN 15 and 29 THEN '15' 
    WHEN minute(date_action) BETWEEN 30 and 44 THEN '30' 
    WHEN minute(date_action) BETWEEN 45 and 59 THEN '45' 
END AS intervals 
FROM 
clients 
WHERE 
HOUR(date_action) = 09 
AND DAY(date_action) = 15 
AND MONTH(date_action) = 07 
AND YEAR(date_action) = 2013 

이 잘 작동 :

Date_time - Minute - Interval 
2013-07-15 09:54:24 - 54 - 45 
2013-07-15 09:29:32 - 29 - 15 
2013-07-15 09:13:33 - 13 - 00 
2013-07-15 09:53:53 - 53 - 45 
2013-07-15 09:00:49 - 00 - 00 

그래서, 즉, 내 분이 해당 구간에서 통화의 수를 카운트 열을 추가 한 후, 나는 각 간격 1 개 행을 반환 할 원하는 간격으로 변환이

Interval - Count 
45 - 2 
15 - 1 
00 - 2 

저는이 길에서 너무 오래 오래 벽돌 벽에 머리를 부딪 히고 있었기 때문에 어떤 도움을 주시면 감사하겠습니다. 가능하다면 쿼리 이후에 나는 약간의 사후 처리가 진행되는 반면 SQL에서는이 모든 작업을 수행 할 것입니다. :)

답변

2

간격으로 그룹화하고 개수를 선택할 수 있습니다.

SELECT 
    count(date_action) as count, 
    CASE 
     WHEN minute(date_action) BETWEEN 0 and 14 THEN '00' 
     WHEN minute(date_action) BETWEEN 15 and 29 THEN '15' 
     WHEN minute(date_action) BETWEEN 30 and 44 THEN '30' 
     WHEN minute(date_action) BETWEEN 45 and 59 THEN '45' 
    END AS intervals 
FROM 
    clients 
WHERE 
    HOUR(date_action) = 09 
    AND DAY(date_action) = 15 
    AND MONTH(date_action) = 07 
    AND YEAR(date_action) = 2013 
    AND rep_id = 28 
GROUP BY intervals 
+0

OMG에게, 또 다른 방법이 될 것입니다. 다시 내 화면에 너무 가까이 앉아있는 것 같아! 감사합니다. :) –

0
select period, Sum(NumberOfTimes) as NumberOfTimes 
From 
(Select minute(date_action) % 15 as period, 1 as NumberOfTimes 
From Clients 
WHERE 
    HOUR(date_action) = 09 
    AND DAY(date_action) = 15 
    AND MONTH(date_action) = 07 
    AND YEAR(date_action) = 2013 
    AND rep_id = 28 
) dummyName 
Group By period 

% 내가 그것을 보지 못했다 방법 나머지 연산자

+0

감사합니다. - 몇 가지 다른 옵션이 있습니다. :) –

관련 문제