본문 바로가기
데이터베이스/SQL

SQL 데이터분석함수 GROUPING SETS, ROW_NUMBER

by ADELA_J 2023. 12. 18.

 

<GROUPING SETS>

- 집계할 컬럼을 직접 선택해서 추가 집계

 

▼ 부서 번호, 직업, 부서 번호별 총 월급, 직업별 총 월급, 전체 총 월급 출력

 

▶ GROUPING SETS 괄호 안에 집계하고 싶은 컬럼명 기술하면 기술한대로 결과 출력됨

 ▷ () 는 전체

  - 위 쿼리에서는 () 전체, (deptno)부서별, (job) 직업별

 

▷ 여기는 deptno+job의 집계 , () 전체

 -  간단하게 본다면 ROLLUP과 결과는 동일하게 나옴

 

 

<ROW_NUMBER>

- 출력되는 순서대로 순위를 부여

   : pseudocolumn(Oracle 내 가상컬럼)의 ROWNUM(데이터에 조회순서대로번호 매기기)와 비슷

   : RANK, DENSE_RANK와는 다름 관련 내용 ▶ https://dev-adela.tistory.com/284

 

▼ 사원번호,이름,연봉,순위, 번호 출력

 

▷ ROW_NUMBER() 를 이용한 '번호' 컬럼은 출력 순서대로 번호를 매김

 

▼ deptno 10과 20에 해당하는 직원들 월급에 대한 순위

▷ FORD와 SCOTT는 같은 월급이여도 FORD가 먼저 나왔기 때문에 1번이다