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 39434 게시물 읽기
No. 39434
쿼리문 질문있습니다~~~!!
작성자
나진산(skwlstks)
작성일
2012-05-03 13:35
조회수
4,648

테이블 명 : TTT

컬럼명 : daily_static

데이터 형식 : timestamp(0)  -> to_char(daily_static, 'yyyy-mm-dd') 형식으로 바꿔서 아래처럼 나오게 할 수 있었습니다.

 

SQL) select to_char(daily_static,'yyyy-mm-dd') from TTT

daily_static

------------------

2012-04-26

2012-04-26

2012-04-27

2012-04-28

2012-04-30

2012-05-02

2012-05-05

 

뭐 이런식으로 값들이 나왔을때 04월26일부터 5월5일 까지의 날짜가 포함되어 있는 데이터가 들어가 있는 모습인데요.

 

제가 알고자하는 결과값의 방식은

 

daily_static         result

--------------------------------

2012-04-26           2

2012-04-27           1

2012-04-28           1

2012-04-29           0

2012-04-30           1

2012-05-01           0

2012-05-02           1

2012-05-03           0

2012-05-04           0

2012-05-05           1

 

이런 결과값을 원하는데 어떻게 하면 Count함수를 사용해서 이런 결과값을 얻을 수 있을지 쿼리문 좀 부탁드립니다.ㅠㅠ 젭알.ㅠㅠ

 

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

group by해서 count하면 되는거 아닌가요?

오근택(ohworld5)님이 2012-05-03 15:50에 작성한 댓글입니다.

날짜 테이블이 있으면 날짜 테이블과 조인 하시면 되구요..

없다면 아래처럼... TTT 테이블이 크다면 속도는 좋지 않을듯 하네요..

 
WITH  TTT AS (
SELECT '2012-04-26' dt FROM dual UNION ALL
SELECT '2012-04-26' dt FROM dual UNION ALL
SELECT '2012-04-27' dt FROM dual UNION ALL
SELECT '2012-04-28' dt FROM dual UNION ALL
SELECT '2012-04-30' dt FROM dual UNION ALL
SELECT '2012-05-02' dt FROM dual UNION ALL
SELECT '2012-05-05' dt FROM dual
)
SELECT A.DT, NVL(CNT,0)
  FROM ( -- 해당 범위 날짜
         SELECT  to_char(to_date((SELECT MIN(dt) FROM TTT), 'yyyy-mm-dd')+LEVEL-1, 'yyyy-mm-dd') dt
          FROM  dual
         CONNECT by LEVEL < (SELECT to_date(MAX(dt),'yyyy-mm-dd') - to_date(MIN(dt),'yyyy-mm-dd') + 2 FROM TTT )
        ) A,
        (SELECT DT, COUNT(*) CNT
         FROM   TTT B
         GROUP  BY DT
        ) B
 WHERE  A.DT = B.DT(+)
ORDER BY A.DT

dol님이 2012-05-04 16:13에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
39437ORA-00600 [6749] 오류 [1]
니리
2012-05-07
4302
39436지난달, 현재달 한 row에 select하기 [1]
궁금
2012-05-04
4463
39435DISTINCT 질문입니다. [2]
물어보자
2012-05-03
4526
39434쿼리문 질문있습니다~~~!! [2]
나진산
2012-05-03
4648
39433구매횟수 계산 관련하여 문의 드립니다. [2]
고민남
2012-05-02
3698
39431날짜, 통화코드별 금액을 조회하려고 합니다... [1]
초보일때가 좋은...
2012-04-30
4119
39430알바(오라클DB복구) 구합니다.
김동수
2012-04-30
3704
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다