문제
다음 [재고] 테이블에서 SQL문을 실행했을 때 품목='노트북'인 행의 이전재고 값을 쓰시오.
| 품목 | 수량 |
|---|---|
| 마우스 | 50 |
| 키보드 | 80 |
| 모니터 | 30 |
| 노트북 | 20 |
SQLSELECT 품목, 수량, LAG(수량, 1, 99) OVER (ORDER BY 품목) AS 이전재고 FROM 재고;
정답
30
30
해설
LAG 함수는 이전 행의 값을 반환합니다. ORDER BY 품목으로 사전순 정렬하면 키보드→마우스→모니터→노트북 순서가 됩니다. 따라서 '노트북' 이전 행은 '모니터'이고, 모니터의 수량인 30이 이전재고 값으로 반환됩니다.