본문 바로가기
Database

SQL Server - 데이터 중복제거 및 정렬 동시에 하기

by soojitasan 2024. 5. 3. 13:00

## 네이버 블로그에 포스팅한 내용 옮겨오기

 

 

SQL Server에서 중복제거 및 정렬 동시에 하기

중복제거로 자주쓰는 DISTINCT 키워드와 정렬문인 ORDER BY절에 오는 정렬 컬럼이 상이해서 같이 쓰기 곤란한 경우
ROW_NUMBER ~ PARTITION BY 절을 사용해보자.

 

 

SELECT ROW_NUMBER() OVER (PARTITION BY [중복제거컬럼] ORDER BY [정렬컬럼])
FROM [테이블명]

 

-- 예시: Product 테이블에서 ProductID, seq 컬럼으로 중복제거 후 OrderDate 순서로 정렬하기
SELECT ProductID
      , seq
      , OrderDate
      , ROW_NUMBER() OVER (PARTITION BY ProductID, seq ORDER BY OrderDate) as row_num
FROM Product
WHERE row_num = 1

 


--> row_num을 같이 조회하고싶지 않은 경우 위 테이블을 FROM절 임시테이블로 넣어서 쓰자.