안녕하세요 mysql 쿼리질문 입니다.
쿼리는
select sum(duration) as duration,sum(dosu) as dosu, sum(fee) as fee ,connDate as connDate
from
(
select
C.CallLogId,
B.idArsLog,
A.Expert_ExpertIdx as expertIdx,
A.Charge as charge,
A.ChoiceCharge as choiceCharge,
(TIME_TO_SEC(timediff(C.DisConnect, C.Connect))-20) as duration,
ceil((TIME_TO_SEC(timediff(C.DisConnect, C.Connect)) - 20) / 30) as dosu,
ceil((TIME_TO_SEC(timediff(C.DisConnect, C.Connect)) - 20) / 30) * 2000 as fee,
date_format(C.Connect, '%Y-%m-%d') as connDate
from ars as A
inner join arslog as B on(A.idArs = B.Ars_idArs)
inner join calllog as C on (B.CallLog_CallLogId = C.CallLogId)
where TIME_TO_SEC(timediff(C.DisConnect, C.Connect)) > 20
AND A.Charge = '1'
AND (TO_DAYS('2010-05-01')<= TO_DAYS(C.Connect) and TO_DAYS(C.Connect)<= TO_DAYS('2010-05-05'))
) as todayars
GROUP BY connDate order by NULL
결과값은
duration |
dosu |
fee |
connDate |
9288 |
317 |
634000 |
2010-05-01 |
9302 |
315 |
630000 |
2010-05-02 |
9695 |
329 |
658000 |
2010-05-03 |
20783 |
735 |
1470000 |
2010-05-04 |
41214 |
1389 |
2778000 |
2010-05-05 |
이런식으로 나오고 있습니다.
connDate 가 날짜별로 그룹으로 묶어서 + / - 연산해서 나온값입니다.
여기서 질문은
현재 connDate는 데이터 타입으로 2010-04-29 09:32:29
이런식으로 저장되어 있습니다.
위에서는 date_format(C.Connect, '%Y-%m-%d') as connDate
이렇게 한후 그룹바이로 묶어서 날짜별로 나오고 있습니다.
제가 원하는 결과물은
날짜가 아닌 당일날짜 시간대 별로 그룹으로 묶어서 나타나게 하는 겁니다.
(결과물)
duration |
dosu |
fee |
connDate |
9288 |
317 |
634000 |
09:00 |
9302 |
315 |
630000 |
10:00 |
9695 |
329 |
658000 |
11:00 |
20783 |
735 |
1470000 |
12:00 |
41214 |
1389 |
2778000 |
13:00 |
위의 조건은 09:00시 대에 몇건의 duration,dosu,fee 가 축적되었는지
10:00 시 대에 몇건의 duration,dosu,fee 가 축적되었는지
나타나는 겁니다.
이게 쿼리로 만들려고 하니 엄두가 안나서요...
위의 부분을 응용해서 만들면 될꺼 같은데 제가 워낙 초보라서요..
고수님들 한수 부탁드립니다. |