SQL의 LEAD() 함수는 윈도우 함수의 하나로, 특정 행의 다음 행 값을 참조하는 데 사용됩니다.
데이터를 행 단위로 비교하거나 분석할 때 유용하며, OVER() 절과 함께 사용됩니다.
LEAD(column_name, offset, default_value) OVER (PARTITION BY partition_column ORDER BY order_column)
아래는 직원들의 월급(salary)을 조회하고, 각 행에서 다음 직원의 월급을 표시하는 예제입니다.
SELECT employee_id, salary, LEAD(salary) OVER (ORDER BY salary) AS next_salary
FROM employees;
결과:
| employee_id | salary | next_salary |
| 1 | 3000 | 4000 |
| 2 | 4000 | 5000 |
| 3 | 5000 | NULL |
부서별로 데이터를 나누고, 다음 직원의 월급을 비교합니다.
SELECT
department_id,
employee_id,
salary,
LEAD(salary) OVER (PARTITION BY department_id ORDER BY salary) AS next_salary
FROM employees;
결과:
| department_id | employee_id | salary | next_salary |
| 1 | 101 | 3000 | 4000 |
| 1 | 102 | 4000 | NULL |
| 2 | 201 | 3500 | 4500 |
| 2 | 202 | 4500 | NULL |
다음 2번째 행의 값을 가져오며, 값이 없으면 "No Data"를 반환합니다.
SELECT
employee_id,
salary,
LEAD(salary, 2, 'No Data') OVER (ORDER BY salary) AS second_next_salary
FROM employees;
결과:
| employee_id | salary | second_next_salary |
| 1 | 3000 | 5000 |
| 2 | 4000 | No Data |
| 3 | 5000 | No Data |
함수설명
| LEAD | 현재 행 기준으로 다음 행의 값을 반환 |
| LAG | 현재 행 기준으로 이전 행의 값을 반환 |
| DBMS 뜻? 종류? (1) | 2024.11.27 |
|---|---|
| 데이터베이스 SQL COALESCE 함수 사용하는 방법 (0) | 2024.11.25 |
| mysql workbench 자동 대문자 변환하는 방법 (0) | 2024.11.21 |
| PK 2개일 경우 인덱스 특징 (0) | 2024.11.21 |
| pk 1개 테이블과 2개 테이블의 차이점 (0) | 2024.11.19 |