문제
다음 [성적] 테이블에서 SQL문을 실행했을 때 학번=203인 행의 before_score 값을 쓰시오.
| 학번 | 점수 |
|---|---|
| 201 | 85 |
| 202 | 92 |
| 203 | 78 |
| 204 | 95 |
SQLSELECT 학번, 점수, LAG(점수, 1, 0) OVER (ORDER BY 학번) AS before_score FROM 성적;
정답
92
92
해설
LAG(점수, 1, 0) 함수는 현재 행의 이전 행에서 점수 값을 가져옵니다. ORDER BY 학번으로 정렬되어 있으므로, 학번=203인 행의 이전 행은 학번=202입니다. 학번=202의 점수는 92이므로, 학번=203인 행의 before_score 값은 92입니다.