Menu
Coddy logo textTech

LEAD 및 LAG 함수

Coddy SQL 여정의 기초 섹션에 포함된 레슨. 72개 중 61번째.

LEADLAG 함수를 사용하면 현재 행의 값에서 n단계 이전 또는 n단계 이후의 값에 액세스할 수 있습니다.

예를 들어, 현재 행과 한 달 전의 회사 revenue 비율을 계산하려면 이전 달의 값을 추출할 수 있습니다:

idrevenuemonth
15325
24926
33937
47238
SELECT id, revenue, LAG(revenue, 1) OVER (ORDER BY MONTH) as prev_month_revenue
FROM table1 ORDER BY id

그러면 다음 테이블이 생성됩니다:

idrevenueprev_month_revenue
1532 
2492532
3393492
4723393

이렇게 하면 prev_month_revenue/revenue 비율을 계산할 수 있습니다.

대신 LEAD 함수를 사용하면 각 행의 다음 달 revenue를 가져옵니다:

SELECT id, revenue, LEAD(revenue, 1) OVER (ORDER BY MONTH) as next_month_revenue
FROM table1 ORDER BY id
idrevenuenext_month_revenue
1532492
2492393
3393723
4723 
challenge icon

챌린지

쉬움

사용 가능한 테이블과 열:

  • air_conditioners: id, efficiency, strength, month

각 에어컨의 효율을 이전 에어컨의 효율과 비교하세요.

각 에어컨의 효율과 이전에 설치된 에어컨의 효율(id를 기준으로)을 함께 표시하는 쿼리를 작성하세요. 또한 현재 에어컨과 이전 에어컨 간의 효율 차이도 계산하세요. 결과는 idefficiency를 기준으로 오름차순 정렬하세요.

예상 출력 열:

  • id
  • efficiency
  • previous_efficiency (LAG 사용)
  • efficiency_difference (현재 효율 - 이전 효율)

마지막으로 쿼리를 감싸고 첫 번째 행을 필터링하세요. 첫 번째 행의 previous_efficiency(따라서 efficiency_difference도)는 비어 있으며, 즉 NULL입니다:

SELECT * FROM (
    -- Your query here
)
WHERE previous_efficiency IS NOT NULL

직접 해보기

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨

직접 연습해 보세요: SQL 플레이그라운드