본문 바로가기

DB

[oracle] 합계함수 없는 pivot

단순 문자열만 존재하는 테이블에서 피벗을 사용해야 할 때가 있는데
합계함수를 쓰지 않으면 ORA-56902 에러가 뜹니다.
문자열에도 MIN 또는 MAX 함수가 먹히는 것을 이용합니다.

SQL

SELECT ACCOUNTING, RESEARCH, SALES, OPERATIONS
FROM (
    SELECT DNAME, LOC
    FROM DEPT
)
PIVOT (
    MAX(LOC)
    FOR DNAME IN ('ACCOUNTING' AS ACCOUNTING, 'RESEARCH' AS RESEARCH, 'SALES' AS SALES, 'OPERATIONS' AS OPERATIONS)
);

결과