ROLL UP 활용한 개수 및 비율 구하기

테이블 내 집계 관련 파생속성이 주어지지 않았을 때 아래 SQL문은 유용하다.

 

SELECT CASE WHEN 컬럼1 IS NULL THEN ‘총계’ ELSE 컬럼1 END ‘컬럼명, ROUND(COUNT(*) “개수”, 200*COUNT(*)/SUM(COUNT(*))OVER(),2) “비율”
FROM (SELECT NVL(컬럼, ‘NULL’) 컬럼1 FROM 테이블)
GROUP BY ROLLUP(컬럼1)
ORDER BY CASE ~

 

tip1. 200을 곱하는 이유는 ROLLUP 때문이다.
tip2. 인라인뷰에서 NVL 처리를 해주는 것이 ROLLUP 총계 표시를 위해 바람직하다.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중