[Oracle] 오라클 월별 합계 구하기 (월별 통계)
- 데이터베이스/오라클
- 2023. 8. 2.
오라클 쿼리에서 월별 합계(월별 통계)를 구하기 위해서는 날짜 칼럼을 TO_CHAR 함수를 사용하여 년월까지만 잘라서 집계를 하면 쉽게 구할 수 있다. 월별 가로 합계를 구하기 위해서는 DECODE 함수를 사용하면 쉽게 구할 수 있지만, DECODE 함수 외에도 CASE 표현식이나 PIVOT 함수를 사용할 수도 있다.
목차 |
월별 합계 구하기 (가로 합계)
SELECT SUM(DECODE(TO_CHAR(hiredate, 'MM'), '01', sal)) AS "01월"
, SUM(DECODE(TO_CHAR(hiredate, 'MM'), '02', sal)) AS "02월"
, SUM(DECODE(TO_CHAR(hiredate, 'MM'), '03', sal)) AS "03월"
, SUM(DECODE(TO_CHAR(hiredate, 'MM'), '04', sal)) AS "04월"
, SUM(DECODE(TO_CHAR(hiredate, 'MM'), '05', sal)) AS "05월"
, SUM(DECODE(TO_CHAR(hiredate, 'MM'), '06', sal)) AS "06월"
, SUM(DECODE(TO_CHAR(hiredate, 'MM'), '07', sal)) AS "07월"
, SUM(DECODE(TO_CHAR(hiredate, 'MM'), '08', sal)) AS "08월"
, SUM(DECODE(TO_CHAR(hiredate, 'MM'), '09', sal)) AS "09월"
, SUM(DECODE(TO_CHAR(hiredate, 'MM'), '10', sal)) AS "10월"
, SUM(DECODE(TO_CHAR(hiredate, 'MM'), '11', sal)) AS "11월"
, SUM(DECODE(TO_CHAR(hiredate, 'MM'), '12', sal)) AS "12월"
FROM emp
WHERE hiredate BETWEEN TO_DATE('1981-01-01', 'YYYY-MM-DD')
AND TO_DATE('1981-12-31', 'YYYY-MM-DD')
월별 합계의 핵심은 TO_CHAR 함수를 사용하여 날짜를 월(또는 년월)까지만 변환하여 사용하는 것이다.
가로 합계를 구하기 위해서는 DECODE 함수를 사용하면 된다. DECODE 함수 외에도 CASE 표현식 또는 PIVOT 함수를 사용하여 가로 합계를 구할 수 있다.
월별 합계 구하기 (세로 합계)
SELECT TO_CHAR(hiredate, 'YYYY-MM') AS yyyymm
, SUM(sal)
FROM emp
WHERE hiredate BETWEEN TO_DATE('1981-01-01', 'YYYY-MM-DD')
AND TO_DATE('1981-12-31', 'YYYY-MM-DD')
GROUP BY TO_CHAR(hiredate, 'YYYY-MM')
ORDER BY yyyymm
월별 세로 합계를 구하기 위해서는 TO_CHAR 함수를 사용하여 날짜를 년월까지만 변환하여 합산을 하면 된다.