반응형
원본 데이터.



        cp_id             datetime
61 2008-12-03
62 2008-11-03
62 2008-12-03
62 2008-12-03
63 2008-12-03
63 2008-12-03



Count 통계 구하는 쿼리.

SELECT NVL(to_char(cp_id), 'Total') cp_id, NVL(to_char(datetime, 'YYYYMM'), 'Sum') datetime, count(*) cnt
FROM tbl_subscriber
GROUP BY ROLLUP(cp_id, to_char(datetime, 'YYYYMM'))

- 결과
       cp_id     datetime           cnt
61     200812 1
61     Sum 1
62     200811 1
62     200812 2
62     Sum 3
63     200812 2
63     Sum 2
        Total     Sum 6




- 누적 통계 구하는 쿼리.

SELECT cp_id, datetime, sum(cnt) OVER (PARTITION BY cp_id order by datetime) as count
FROM (
  SELECT cp_id, to_char(datetime, 'YYYYMM') datetime, count(*) cnt
  FROM tbl_subscriber
  GROUP BY cp_id, to_char(datetime, 'YYYYMM')
  ORDER BY cp_id, datetime ASC
)

- 결과

        cp_id     datetime           cnt
61     200812 1
62     200811 1
62     200812 3
63     200812 2



이와 같다..


^^

반응형

'Database > Oracle' 카테고리의 다른 글

테이블 사이즈 구하기  (0) 2009.02.11
merge into = mysql 의 replace 와 비슷한 기능  (0) 2009.02.11
누적 쿼리  (0) 2009.02.11
Date 관련 query  (1) 2009.02.11
날짜 계산 - 날짜 차이  (0) 2009.02.11

+ Recent posts