database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 37885 게시물 읽기
No. 37885
특정날짜에서 시간대별 통계 쿼리문.
작성자
박하나무
작성일
2010-08-23 11:59
조회수
9,313

 

 

SELECT DECODE(GROUPING(copy_t.tm1),1,'토탈',copy_t.tm1||'~'||copy_t.tm2) AS TIME
, SUM(main_t.cnt) AS TOTAL
FROM
(
SELECT TO_CHAR(EPRK_CONN_DATE, 'hh24') tm
, COUNT(*) cnt
FROM TB_S15_EPRK_VISIT
GROUP BY TO_CHAR(EPRK_CONN_DATE, 'hh24')
) main_t
,
(
SELECT LPAD(LEVEL + 8, 2, '0') tm1
, LPAD(LEVEL + 9, 2, '0') tm2
FROM dual CONNECT BY LEVEL <= 10
) copy_t
WHERE copy_t.tm1 = main_t.tm(+)
GROUP BY ROLLUP((copy_t.tm1, copy_t.tm2))
ORDER BY copy_t.tm1
;

인터넷을 보면서 이런식으로 쿼리를 하면 시간대별로 카운트를 해서 시간대별

통계는 구해지는데요.. 특정날자 (yyyy mm dd )로 해서 그 날만 구하고 싶은데

중간에 where 조건을 어떻게 줘야하는지 모르겠네요 ㅠ

도와주세요.. 오라클이 이번에 처음이라서;; 간단한 쿠리문밖에 사용을 못해봐서요;;

이 글에 대한 댓글이 총 3건 있습니다.

SELECT DECODE(GROUPING(copy_t.tm1),1,'토탈',copy_t.tm1||'~'||copy_t.tm2) AS TIME
, SUM(main_t.cnt) AS TOTAL
FROM
(
SELECT TO_CHAR(EPRK_CONN_DATE, 'hh24') tm
, COUNT(*) cnt
FROM TB_S15_EPRK_VISIT
WHERE EPRK_CONN_DATE >= to_date('20100820000000','yyyymmddhh24miss')
  AND EPRK_CONN_DATE <= to_date('20100820235959','yyyymmddhh24miss')
GROUP BY TO_CHAR(EPRK_CONN_DATE, 'hh24')
) main_t
,
(
SELECT LPAD(LEVEL + 8, 2, '0') tm1
, LPAD(LEVEL + 9, 2, '0') tm2
FROM dual CONNECT BY LEVEL <= 10
) copy_t
WHERE copy_t.tm1 = main_t.tm(+)
GROUP BY ROLLUP((copy_t.tm1, copy_t.tm2))
ORDER BY copy_t.tm1

知音님이 2010-08-23 12:15에 작성한 댓글입니다. Edit

헛.. 감사합니다  ㅠ

 

 

박하나무님이 2010-08-23 13:04에 작성한 댓글입니다. Edit

이부분을

WHERE EPRK_CONN_DATE >= to_date('20100820000000','yyyymmddhh24miss')
  AND EPRK_CONN_DATE <= to_date('20100820235959','yyyymmddhh24miss')

이렇게 바꾸면 퍼포먼스가 좀 나아질까요 아니면 위부분이 나을까요..

WHERE EPRK_CONN_DATE between to_date('20100820000000','yyyymmddhh24miss')
  AND to_date('20100820235959','yyyymmddhh24miss')

>= <= 연산자가 가끔 헷갈리면 between을 쓰기도 하거든요.

연산자쓰는것이 속도가 좀 낫다면 연산자를 쓰는게 좋을 것 같더군요.

그냥 지나가다 한줄 댓글달아봅니다

이동안(leeda153)님이 2010-08-24 09:47에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
37888ORA-01467: 정렬 키가 너무 깁니다(해결해 보신분 있으신가요?) [1]
이상영
2010-08-23
5131
37887(힘든노가다홍보일주실분)010-5787-6000
김선종
2010-08-23
3036
37886Grouping, Group_id 질문입니다.. [1]
아폴론
2010-08-23
4200
37885특정날짜에서 시간대별 통계 쿼리문. [3]
박하나무
2010-08-23
9313
37884오늘 마지막 시간가져오기
박주현
2010-08-23
3084
37883맨 아랫 Row에 비율 나타내기.. [5]
아폴론
2010-08-20
3892
37882이건 오라클 버그인건가요? [2]
류신
2010-08-20
2680
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다