[질문] mysql 에서 질의문좀..
아래 테이블에서요. 6월 부터 7월 까지 토요일날 01:00분 부터 01:05분까지(START_TIME 기준) IN_OUT 타입에 따른 개수를 구하는 질의 좀 부탁드립니다.
예를 들어 아래처럼 토요일이면서 START_TIME이 2005-07-23 01:00:12 으로 01:00분 부터 01:05분 사이에 포함이 되고, IN_OUT 타입이 2인 데이터의 개수만 뽑아내는 것입니다.
| 2912089 | 311 | 311 | 2005-07-23 01:00:12 | 2005-07-23 01:09:12 | 00:00:00 | 4 | 2 |
+---------+-------+----------------+---------------------+---------------------+----------+--------+-----------+
| SEQ | PHONE | CALLING_NUMBER | START_TIME | END_TIME | TEL_TIME | IN_OUT | CALL_TYPE |
+---------+-------+----------------+---------------------+---------------------+----------+--------+-----------+
| 2912094 | 311 | 311 | 2005-07-20 19:35:54 | 2005-07-20 19:35:54 | 00:00:00 | 4 | 2 |
| 2912093 | 311 | 311 | 2005-07-20 19:32:48 | 2005-07-20 19:32:48 | 00:00:00 | 4 | 2 |
| 2912092 | 311 | 311 | 2005-07-20 19:04:11 | 2005-07-20 19:04:11 | 00:00:00 | 4 | 2 |
| 2912091 | 311 | 311 | 2005-07-20 12:19:10 | 2005-07-20 12:19:10 | 00:00:00 | 4 | 2 |
| 2912090 | 311 | 311 | 2005-07-20 12:18:00 | 2005-07-20 12:18:00 | 00:00:00 | 4 | 2 |
| 2912089 | 311 | 311 | 2005-07-20 12:09:12 | 2005-07-20 12:09:12 | 00:00:00 | 4 | 2 |
| 2912088 | 311 | 311 | 2005-07-19 21:26:16 | 2005-07-19 21:26:16 | 00:00:00 | 4 | 2 |
| 2912087 | 311 | 311 | 2005-07-19 21:10:00 | 2005-07-19 21:10:00 | 00:00:00 | 4 | 2 |
| 2912086 | 311 | 311 | 2005-07-19 21:05:24 | 2005-07-19 21:05:24 | 00:00:00 | 4 | 2 |
| 2912085 | 311 | 311 | 2005-07-19 21:01:26 | 2005-07-19 21:01:26 | 00:00:00 | 4 | 2 |
| 2912054 | 311 | 07450084240 | 2005-07-18 16:40:05 | 2005-07-18 16:40:05 | 00:00:00 | 7 | 1 |
| 2912055 | 311 | 07450084240 | 2005-07-18 16:40:26 | 2005-07-18 16:40:26 | 00:00:00 | 7 | 1 |
| 2912056 | 311 | 07450084240 | 2005-07-18 16:40:45 | 2005-07-18 16:40:45 | 00:00:00 | 7 | 1 |
| 2912057 | 311 | 07450084240 | 2005-07-18 17:30:41 | 2005-07-18 17:30:41 | 00:00:00 | 7 | 1 |
| 2912058 | 311 | 07450084210 | 2005-07-18 17:31:30 | 2005-07-18 17:31:30 | 00:00:00 | 7 | 1 |
| 2912059 | 311 | 07450084211 | 2005-07-18 17:32:01 | 2005-07-18 17:32:01 | 00:00:00 | 7 | 1 |
| 2912060 | 311 | 07450084211 | 2005-07-18 17:32:27 | 2005-07-18 17:32:27 | 00:00:00 | 7 | 1 |
| 2912061 | 311 | 07450084211 | 2005-07-18 17:40:06 | 2005-07-18 17:40:06 | 00:00:00 | 7 | 1 |
| 2912062 | 311 | 07450084233 | 2005-07-18 17:57:06 | 2005-07-18 17:57:06 | 00:00:00 | 7 | 1 |
| 2912063 | 311 | 07450084211 | 2005-07-18 18:01:06 | 2005-07-18 18:01:06 | 00:00:00 | 7 | 1 |
| 2912064 | 311 | 07450084211 | 2005-07-18 18:03:32 | 2005-07-18 18:03:32 | 00:00:00 | 7 | 1 |
| 2912065 | 311 | 07450084211 | 2005-07-18 18:04:08 | 2005-07-18 18:04:08 | 00:00:00 | 7 | 1 |
| 2912066 | 311 | 07450084241 | 2005-07-18 18:04:10 | 2005-07-18 18:04:10 | 00:00:00 | 7 | 1 |
| 2912067 | 311 | 07450084241 | 2005-07-18 18:04:35 | 2005-07-18 18:04:35 | 00:00:00 | 7 | 1 |
| 2912068 | 311 | 07450084211 | 2005-07-18 18:06:18 | 2005-07-18 18:06:18 | 00:00:00 | 7 | 1 |
| 2912069 | 311 | 07450084241 | 2005-07-18 18:08:44 | 2005-07-18 18:08:44 | 00:00:00 | 7 | 1 |
| 2912070 | 311 | 07450084211 | 2005-07-18 18:10:13 | 2005-07-18 18:10:13 | 00:00:00 | 7 | 1 |
| 2912071 | 311 | 07450084211 | 2005-07-18 18:18:04 | 2005-07-18 18:18:04 | 00:00:00 | 7 | 1 |
| 2912072 | 311 | 07450084241 | 2005-07-18 18:18:45 | 2005-07-18 18:18:45 | 00:00:00 | 7 | 1 |
| 2912073 | 307 | 07450084241 | 2005-07-18 18:19:16 | 2005-07-18 18:19:16 | 00:00:00 | 7 | 1 |
| 2912074 | 311 | 07450084211 | 2005-07-18 18:23:09 | 2005-07-18 18:23:09 | 00:00:00 | 7 | 1 |
| 2912075 | 311 | 07450084211 | 2005-07-18 18:29:52 | 2005-07-18 18:29:52 | 00:00:00 | 7 | 1 |
| 2912076 | 311 | 311 | 2005-07-18 19:13:39 | 2005-07-18 19:13:39 | 00:00:00 | 4 | 2 |
| 2912077 | 311 | 311 | 2005-07-18 19:13:57 | 2005-07-18 19:13:57 | 00:00:00 | 4 | 2 |
| 2912078 | 311 | 311 | 2005-07-18 19:15:59 | 2005-07-18 19:15:59 | 00:00:00 | 4 | 2 |
| 2912079 | 311 | 311 | 2005-07-18 19:23:33 | 2005-07-18 19:23:33 | 00:00:00 | 4 | 2 |
| 2912080 | 311 | 311 | 2005-07-18 19:24:28 | 2005-07-18 19:24:28 | 00:00:00 | 4 | 2 |
| 2912081 | 311 | 311 | 2005-07-18 19:24:29 | 2005-07-18 19:24:29 | 00:00:00 | 4 | 2 |
| 2912082 | 311 | 311 | 2005-07-18 19:24:30 | 2005-07-18 19:24:30 | 00:00:00 | 4 | 2 |
| 2912083 | 311 | 311 | 2005-07-18 19:24:38 | 2005-07-18 19:24:38 | 00:00:00 | 4 | 2 |
| 2912084 | 311 | 311 | 2005-07-18 19:24:39 | 2005-07-18 19:24:39 | 00:00:00 | 4 | 2 |
Re: [질문] mysql 에서 질의문좀..
SELECT COUNT(SEQ)
FROM TABLENAME
WHERE (DATE_FORMAT(START_TIME, '%Y%m')='200506' OR DATE_FORMAT(START_TIME, '%Y%m')='200507')
AND DATE_FORMAT(START_TIME, '%w')='6'
AND DATE_FORMAT(START_TIME, '%H%i')>='01:00' AND DATE_FORMAT(START_TIME, '%H%i')<='01:05'
AND IN_OUT=2;
좀더 쿼리 최적화 하는 방법도 있을듯 하지만 일단 생각나는대로 적어봅니다 :)
덧> 오늘따라 저하고 비슷한 일을 하시는 듯한 분들이 올리신글들이 눈에 띄네요 :D
============================================
자나깨나 트롤 조심. 나간 트롤 다시보자.
"저는 앞으로 troll을 만나더라도 먹이를 주지 않도록 노력하겠습니다." :)
COUNT(*) 로 하는것이 성능상 잇점이 있다고 어디서 봤는데,왜
COUNT(*) 로 하는것이 성능상 잇점이 있다고 어디서 봤는데,
왜 잇점이 있는지 어디서 봤는지 잊었네요. :oops:
https://xenosi.de/
[quote="송효진"]COUNT(*) 로 하는것이 성능상 잇점이 있다고
제 기억이 맞다면, 모든 레코드를 받아서 갯수를 세는 것보다 미리 숫자를 다 세 놓고 한 레코드만 받아 오는 게 성능이 더 좋은 걸로 알고 있습니다. (예를 들어서 레코드 수가 10만개라고 치면 가져 오는 레코드 수가 상당하겠지요...)
- 토끼군
댓글 달기