이전 행의 값 접근하기
쿼리에서 LAG() 함수를 사용하면 현재 행보다 앞선 행들의 값에 접근할 수 있어요.
문법은 다음과 같아요:
LAG(numeric_expression) OVER ([PARTITION BY column] ORDER BY column)
이번 연습에서는 이 함수를 쿼리에 사용해 볼 거예요. "Fruition"이라는 회사가 생산한 초콜릿 바의 평점을 분석합니다.
이 회사는 전 세계 여러 지역에서 생산된 코코아로 초콜릿을 만듭니다.
같은 원산지의 바를 대상으로 코코아 함량과 받은 점수 사이에 상관관계가 있는지 확인하려고 해요. 이를 위해 각 바의 코코아 함량을 바로 이전 평점을 받은 바의 코코아 함량과 비교합니다. 그런 다음 이 값들의 차이를 계산하고 결과를 해석하세요.
이 연습은 강의의 일부입니다
SQL Server에서 데이터 조작을 위한 함수
연습 안내
- 같은 원산지(
broad_bean_origin이 동일)에서 온 코코아로 만든 초콜릿 바 중, 더 낮은 점수를 받은 이전 바의 코코아 함량을 보여 주는 새 열을 만드세요. - 현재 바의 코코아 함량에서 이전 바의 코코아 함량을 뺀 차이를 나타내는 새 열을 만드세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
SELECT
broad_bean_origin AS bean_origin,
rating,
cocoa_percent,
-- Retrieve the cocoa % of the bar with the previous rating
___(___)
OVER(___ broad_bean_origin ORDER BY ___) AS percent_lower_rating
FROM ratings
WHERE company = 'Fruition'
ORDER BY broad_bean_origin, rating ASC;