은쥬라기월드

ROW_NUMBER() 본문

Language(언어)/SQL

ROW_NUMBER()

은쥬라기 2021. 12. 12. 14:17

📌ROW_NUMBER()이란

PARTITION 결과의 행 일련번호를 반환하는 함수로 ORDER BY절에 의해 정렬된 순서를 기준으로 고유한 값을 반환한다.

 

📌ROW_NUMBER() 문법

ROW_NUMBER() OVER(PARTITION BY [그룹핑 컬럼] ORDER BY [정렬 컬럼])

- PARTITON BY는 선택사항, FROM 절이 생성한 결과에서 ROW_NUMBER가 적용되는 파티션으로 나누기

- ORDER BY는 필수사항, ROW_NUMBER 값이 행에 할당되는 순서 결정

 

EX) 특정 열을 기준으로 중복을 제거하고 싶을 경우 사용

이름 나이
김철수 34
박영희 23
쥬라기 28
김철수 50
김영철 48
이복희 33

정보테이블

 

Q) 정보테이블에서 이름으로 중복을 제거한 데이터를 가져오세요. (중복이 있을 경우 가장 나이가 많은 값을 가져온다.)

A) 

SELECT TT.*
FROM (SELECT *, ROW_NUMBER() OVER (PARTITION BY 이름 ORDER BY 나이 DESC) AS RK
      FROM 정보테이블) TT
WHERE TT.RK = 1;
이름 나이 RK
김철수 50 1
박영희 23 1
쥬라기 28 1
김영철 48 1
이복희 33 1

TT 테이블

 

'Language(언어) > SQL' 카테고리의 다른 글

PIVOT()  (0) 2021.12.16
SQL 파싱 순서  (0) 2021.09.06
SQL 단축키 모음  (0) 2021.09.06
ALTER  (0) 2021.08.05
SQL이란  (0) 2021.08.05
Comments