[질문] mysql 에서 질의문좀..

leolo의 이미지

아래 테이블에서요. 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 |

strongberry의 이미지

leolo wrote:
아래 테이블에서요. 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 |

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(*) 로 하는것이 성능상 잇점이 있다고 어디서 봤는데,
왜 잇점이 있는지 어디서 봤는지 잊었네요. :oops:

lifthrasiir의 이미지

송효진 wrote:
COUNT(*) 로 하는것이 성능상 잇점이 있다고 어디서 봤는데,
왜 잇점이 있는지 어디서 봤는지 잊었네요. :oops:

제 기억이 맞다면, 모든 레코드를 받아서 갯수를 세는 것보다 미리 숫자를 다 세 놓고 한 레코드만 받아 오는 게 성능이 더 좋은 걸로 알고 있습니다. (예를 들어서 레코드 수가 10만개라고 치면 가져 오는 레코드 수가 상당하겠지요...)

- 토끼군

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.