본문 바로가기
IT/Database

[Mssql/Sqlserver] Top N with ties

by 성준하이 2023. 11. 1.
반응형

이전에 포스팅에서 mysql 기준 limit 을 설명하면서 sqlserver 에서의 Top N 에 대해서 잠깐 얘기한 적이 있다.

자세한 내용은 아래 참고 포스팅 참고 바란다.

 

sqlserver 에서 상위 몇개를 뽑을땐 Top n을 사용하는데 옵션으로 

TOP WITH TIES

를 추가할수 있다.

 

TOP 과 동일하게 상위 N개의 데이터를 조회하지만 동일한 데이터가 있을경우엔 함께 출력이 된다.

또한 TOP WITH TIES를 사용하기 위해서는 ORDER BY 절이 반드시 함께 와야 한다. 

동일한 데이터는 ORDER BY절 뒤의 오는 컬럼이 기준이 된다.

 

id cnt
a 1
a 1
b 2

만약 top만 사용할 경우

select top 1 id, cnt  from table order by id, cnt

id cnt
a 1

이 나오지만 with ties를 추가하면

select top 1 with ties id, cnt  from table order by id, cnt

id cnt
a 1
a 1

동일한 값들은 같이 출력이 된다.


참고 포스팅

https://thenicesj.tistory.com/534

 

rownum 과 limit 의 차이

dbms에서 많이 사용되는 쿼리중에 특정 행의 갯수 반환을 위해 사용하는 구문이 있다. mssql 에서는 top-n 을 사용하지만 rownum과 limit 구문을 많이 봤을것이다. 둘의 차이를 알아보도록 할것이다. 결

thenicesj.tistory.com

 

반응형

댓글