본문 바로가기

프로그래밍/MSSQL

[MSSQL] TOP / TOP WITH TIES (상위 N개의 데이터 출력)

반응형

 

 

TOP

TOP은 상위 N개의 데이터를 출력한다

 

SELECT TOP 1
  item, cnt
FROM sql_test_a
ORDER BY item DESC, cnt DESC

 

원본 데이터
결과 데이터

 

이렇게 TOP 1은 상위 데이터 1개만 출력된다.

 

 

 

 

TOP WITH TIES

TOP 과 동일하게 상위 N개의 데이터를 조회한다.

하지만 동일한 데이터가 있을 경우 함께 출력된다. 

 

TOP WITH TIES를 사용하기 위해서는 ORDER BY 절이 반드시 함께 와야 한다. (TOP의 경우 없어도 가능)

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

 

SELECT TOP 1 WITH TIES
  item, cnt
FROM sql_test_a
ORDER BY item DESC, cnt DESC

 

 

원본 데이터
결과 데이터

 

위의 TOP 예제에서와 다르게 데이터가 2개가 출력이 됐다.

TOP 1 이기 때문에 상위 1개의 데이터만 출력돼야 하지만

ORDER BY절 뒤에 오는 item, cnt의 값이 동일한 데이터가 함께 출력 되기 때문에 2개의 데이터가 출력된다.

 

 

 

동일한 데이터는 ORDER BY절 뒤에 오는 컬럼을 기준으로 한다고 했다.

그렇다면 이번에는 ORDER BY절 뒤에 item 컬럼만을 적용해보자

 

SELECT TOP 1 WITH TIES
  item, cnt
FROM sql_test_a
ORDER BY item DESC

 

결과 데이터

 

TOP 1임에도 불구하고 item의 값이 동일한 결과를 함께 출력하기 때문에 무려 4개 row의 결과가 출력된다.

 

 

[MSSQL] UPDATE TOP (1) 첫 번째 행만 수정

 

 

반응형