728x90
반응형
728x170
■ PIVOT 함수를 사용해 동적으로 집계하는 방법을 보여준다.
▶ 예제 코드 (SQL)
WITH SOURCE_TABLE AS
(
SELECT (TO_DATE('20140101', 'YYYYMMDD') + LEVEL - 1) SOURCE_DATE
FROM DUAL
CONNECT BY LEVEL - 1 <= TO_DATE('20141231', 'YYYYMMDD') - TO_DATE('20140101', 'YYYYMMDD')
)
SELECT *
FROM
(
SELECT
TO_CHAR(SOURCE_DATE,'MM') || '월' TARGET_MONTH
,DECODE(TO_CHAR(SOURCE_DATE, 'D'), '1', '일', '2', '월', '3', '화', '4', '수', '5', '목', '6', '금', '7', '토') WEEK_DAY
,SOURCE_DATE
FROM SOURCE_TABLE
) PIVOT(COUNT(SOURCE_DATE) FOR WEEK_DAY IN ('일', '월', '화', '수', '목', '금', '토'))
ORDER BY TARGET_MONTH;
/*
TARGET_MONTH '월' '화' '수' '목' '금' '토' '일'
------------ ---- ---- ---- ---- ---- ---- ----
01월 4 4 4 5 5 5 4
02월 4 4 4 4 4 4 4
03월 5 5 4 4 4 4 5
04월 4 4 5 5 4 4 4
05월 4 4 4 4 5 5 5
06월 5 5 4 4 4 4 4
07월 4 4 5 5 5 4 4
08월 5 4 4 4 4 5 5
09월 4 5 5 4 4 4 4
10월 4 4 4 5 5 5 4
11월 5 4 4 4 4 4 5
12월 4 5 5 5 4 4 4
*/
728x90
반응형
그리드형(광고전용)
'Database > Oracle' 카테고리의 다른 글
[DATABASE/ORACLE] INSTR 함수 사용하기 (0) | 2015.05.11 |
---|---|
[DATABASE/ORACLE] 사용자 정의 함수를 사용해 숫자 문자열 여부 구하기 (0) | 2015.05.11 |
[DATABASE/ORACLE] TRANSLATE 함수 : 숫자 문자열 여부 구하기 (0) | 2015.05.11 |
[DATABASE/ORACLE] 정규식을 사용해 숫자 문자열 여부 구하기 (0) | 2015.05.11 |
[DATABASE/ORACLE] DECODE 함수 : 동적 집계하기 (0) | 2015.05.11 |
[DATABASE/ORACLE] 특정 기간 날짜 테이블 조회하기 (0) | 2015.05.11 |
[DATABASE/ORACLE] OPEN FOR 명령 : 동적 쿼리 실행하기 (0) | 2015.05.10 |
[DATABASE/ORACLE] EXECUTE IMMEDIATE 명령 : 동적 쿼리 실행하기 (0) | 2015.05.10 |
[DATABASE/ORACLE] START WITH ~ CONNECT BY PRIOR 절 : 재귀 호출하기 (0) | 2015.05.10 |
[DATABASE/ORACLE] CTE 재귀 호출 사용하기 (0) | 2015.05.10 |
댓글을 달아 주세요