문제
다음 [성적] 테이블에서 SQL문을 실행했을 때, 이름이 '박영희'인 행의 tile 값을 쓰시오.
| 이름 | 과목 | 점수 |
|---|---|---|
| 김철수 | 수학 | 85 |
| 이영수 | 수학 | 90 |
| 박영희 | 수학 | 75 |
| 최민수 | 수학 | 95 |
| 정수진 | 수학 | 80 |
| 한지민 | 영어 | 88 |
| 송민호 | 영어 | 92 |
| 김나영 | 영어 | 78 |
SQLSELECT 이름, NTILE(3) OVER (PARTITION BY 과목 ORDER BY 점수 DESC) AS tile FROM 성적;
정답
3
3
해설
NTILE(3) 함수는 각 파티션을 3개 구간으로 나눕니다. 수학 과목에서 점수 내림차순으로 정렬하면 최민수(95), 이영수(90), 김철수(85), 정수진(80), 박영희(75) 순입니다. 총 5명을 3개 구간으로 나누면 1구간 2명, 2구간 2명, 3구간 1명으로 분배됩니다. 박영희는 5번째(마지막)이므로 3구간에 속합니다.