문제
다음 [판매] 테이블에서 SQL문을 실행했을 때, 이름이 '김'인 행의 결과값을 쓰시오.
| 이름 | 지역 | 점수 |
|---|---|---|
| 김 | 서울 | 85 |
| 이 | 서울 | 90 |
| 박 | 부산 | 85 |
| 최 | 부산 | 95 |
| 정 | 서울 | 80 |
SQLSELECT 이름, FIRST_VALUE(점수) OVER (PARTITION BY 지역 ORDER BY 점수 DESC) - 점수 AS 결과 FROM 판매;
정답
5
5
해설
FIRST_VALUE() 윈도우 함수는 각 파티션 내에서 ORDER BY 조건에 따라 정렬된 첫 번째 행의 값을 반환한다. 김(서울, 85)의 경우: 서울 지역에서 점수 내림차순으로 정렬하면 이(90), 김(85), 정(80) 순이므로 FIRST_VALUE는 90이 된다. 따라서 90 - 85 = 5가 결과값이다.