문제
SQL Server에서 하위 5개의 점수를 조회하되, 5번째 점수와 같은 동점자도 모두 포함하려고 한다. 가장 적절한 방법은?
① TOP(5)만 사용하고 ORDER BY 없이 조회한다. ② TOP(5) WITH TIES와 ORDER BY 점수 ASC를 사용한다. ③ TOP(5) WITH TIES와 ORDER BY 점수 DESC를 사용한다. ④ RANK()를 사용하되 ORDER BY 없이 조회한다.
정답
2번
해설
정답: 2. 하위 5개를 뽑으려면 점수를 오름차순으로 정렬하고 TOP(5) WITH TIES를 사용해 5번째와 같은 점수도 포함한다.
오답 풀이
- 1번: ORDER BY가 없으면 하위 기준이 명확하지 않다.
- 2번: 하위 5개와 동점자 포함 조건에 맞다.
- 3번: DESC는 상위 점수 기준이다.
- 4번: RANK도 정렬 기준 없이 사용할 수 없다.
보충 개념 WITH TIES는 마지막으로 선택된 행과 정렬 기준 값이 같은 행을 추가로 반환한다. Top-N 문제에서는 정렬 방향이 핵심이다.