그룹 등을 이용해 여러차례의 서브쿼리를 사용해야하는 분석 및 통계 작업을 손쉽게 사용할 수 있게 된다.
SELECT CUST_NO, -- 고객번호 REGION_ID, -- 지역아이디 SUM(TOT_SALES) CR_SUM, -- 지역, 고객 별로 합계가 구해진다. --여기까지가 일반적인 그룹함수 및 분석 함수 사용 예ㅖ -- 순위 : 동차 뒤에 비연속수 1, 1, 1, 4, 5 ... RANK() OVER(ORDER BY SUM(TOT_SALES) DESC NULLS LAST) RK1, -- 순위 : 동차 뒤에 연속수 1, 1, 1, 2, 3 ... DENSE_RANK() OVER(ORDER BY SUM(TOT_SALES) DESC NULLS LAST) RK2, -- 그냥 쭈욱 순위 나열 ROW_NUMBER() OVER(ORDER BY SUM(TOT_SALES) DESC NULLS LAST) RK3, -- 그룹별로 쭈욱 순위 나열 ROW_NUMBER() OVER(PARTITION BY REGION_ID ORDER BY SUM(TOT_SALES) DESC NULLS LAST) RK4, -- 각 지역의 갯수 COUNT(REGION_ID) OVER(PARTITION BY REGION_ID) R_CNT, -- 총 지역 갯수 COUNT(*) OVER() TOTAL -- NULLS LAST 는 NULL값을 순위 뒤로!! FROM ORDERS GROUP BY CUST_NO, REGION_ID