[SQL] ROW_NUMBER

감자도리·2022년 12월 3일
0

SQL

목록 보기
3/6

✔ ROW_NUMBER

  • PARTION 내에서 ORDER BY 에 의해 정렬된 순서
  • 윈도우 함수로 그룹 내 순위 함수

✔ 쿼리

ROW NUMBER() OVER(PARTITION BY [그루핑할 컬럼] ORDER BY [정렬할 컬럼])

PARTITION BY를 사용해야지 그루핑된 컬럼 내에서 순위가 매겨짐!!

SELECT ROW_NUMBER() OVER(PARTITION BY T1.JOB ORDER BY T1.JOB, T1.ENAME) AS ROW_NUM
     , T1.*
  FROM EMP T1
ORDER BY T1.JOB, T1.ENAME;

예시: 부서에서 급여가 제일 높은 직원

SELECT T2.*
  FROM (
        SELECT ROW_NUMBER() OVER(PARTITION BY T1.DEPTNO ORDER BY T1.SAL DESC) AS ROW_NUM
             , T1.*
          FROM EMP T1
       ) T2
 WHERE T2.ROW_NUM = 1;

출처:https://tychejin.tistory.com/201

0개의 댓글