Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
Tags
- 과정평가형
- jQuery
- POI
- select
- json
- 함수
- input
- controller
- 오류
- 개념
- web.xml
- array
- 정의
- TO_DATE
- javascript
- sql
- Ajax
- 배열
- CSS
- JVM
- Java
- 태그
- html
- Database
- spring
- mybatis
- Oracle
- eGovFramework
- was
- eGov
Archives
- Today
- Total
web developer
[sql] LAG, LEAD 함수 본문
728x90
728x90
LAG, LEAD 함수
LAG와 LEAD는 모두 Window 함수로 각각 현재 행 이전 행과 이후 행의 데이터에 접근 할 수 있습니다.
기본 문법은 다음과 같습니다.
LAG(표현식, offset, default) OVER ( [PARTITION BY] ORDER BY )
LEAD(표현식, offset, default) OVER ( [PARTITION BY] ORDER BY )
- LAG 함수 : 이전 행 값 return
- LEAD 함수 : 다음 행의 값 return
- offset : 값을 가져올 행의 위치, default 1
- default : 값이 없을 경우 지정 할 기본 값
* offset은 몇 번째 이전(또는 이후) 행에 대해 접근할 지를 정수로 나타냅니다.
* 생략가능 : offset, default, partition by
* 생략 불가 : order by
1-1. LAG를 이용한 직전 분기(quarter)의 매출 [ default 값 X ]
/* LAG */
SELECT seq,
year,
quarter,
sales,
LAG(sales, 1) OVER (ORDER BY year, quarter ASC) AS last_quarter_sales
FROM quarter_sales;
1-2. LAG를 이용한 직전 분기(quarter)의 매출 [ default 값 O ]
/* LAG */
SELECT seq,
year,
quarter,
sales,
LAG(sales, 1, 10) OVER (ORDER BY year, quarter ASC) AS last_quarter_sales
FROM quarter_sales;
1-3. LAG를 이용한 직전 분기(quarter)의 매출과 차이
/* LAG */
SELECT seq,
year,
quarter,
sales,
sales - LAG(sales, 1) OVER (partition by year order by year, quarter asc) as last_quarter_sales
FROM quarter_sales;
2. LEAD를 이용한 직후 분기(quarter)의 매출
/* LEAD */
SELECT seq,
year,
quarter,
sales,
LEAD(sales, 1) OVER (partition by year order by year, quarter asc) as last_quarter_sales
FROM quarter_sales;
출처 : https://www.qu3vipon.com/sql-guide#823c3272-d70d-4952-9c34-2a0dcc31f3f4
728x90
728x90
'SQL' 카테고리의 다른 글
[sql] GROUP BY (0) | 2023.08.20 |
---|---|
[sql] sql, database, dbms, schema 개념 이해하기 (0) | 2022.12.10 |
Comments