주별 집계에 대한 내용을 살펴보자.
예제를 위해 아래와 같이 테이블을 생성하자.
-- 1 DROP TABLE t1 PURGE; CREATE TABLE t1 AS SELECT TO_DATE ('20501226') + ROWNUM - 1 AS dt FROM XMLTABLE ('1 to 14');
아래 쿼리는 YYYY-WW 포맷 모델을 사용했기 때문에 2050-53 주차 데이터가 1건으로 집계된다.
-- 2 SELECT TO_CHAR (dt, 'YYYY-WW') AS yw , MIN (dt) AS dt_min , MAX (dt) AS dt_max , COUNT (*) AS cn FROM t1 GROUP BY TO_CHAR (dt, 'YYYY-WW') ORDER BY 1; YW DT_MIN DT_MAX CN ------- ---------- ---------- -- 2050-52 2050-12-26 2050-12-30 5 2050-53 2050-12-31 2050-12-31 1 2051-01 2051-01-01 2051-01-07 7 2051-02 2051-01-08 2051-01-08 1 4 행이 선택되었습니다.
아래와 같이 IYYY-IW 포맷 모델을 사용하면 주 단위로 7일치 데이터를 집계할 수 있다.
-- 3 SELECT TO_CHAR (dt, 'IYYY-IW') AS yw , MIN (dt) AS dt_min , MAX (dt) AS dt_max , COUNT (*) AS cn FROM t1 GROUP BY TO_CHAR (dt, 'IYYY-IW') ORDER BY 1; YW DT_MIN DT_MAX CN ------- ---------- ---------- -- 2050-52 2050-12-26 2051-01-01 7 2051-01 2051-01-02 2051-01-08 7 2 행이 선택되었습니다.
'Oracle > SQL' 카테고리의 다른 글
최종 거래일이 1달 남은 ELW 만기일 조회 (0) | 2012.07.12 |
---|---|
데이터 계산 순서 구하기 (0) | 2012.05.11 |
주민등록번호 마스킹 (0) | 2012.04.30 |
다중 행을 문자열로 집계 (0) | 2012.04.16 |
구분자 포함 값을 행으로 분리 (0) | 2012.04.13 |