영어사전에서 다음 각함수의 뜻을 찾아보면 ,
LAG : 뒤에 처지다, 뒤떨어지다 -- 이전행의 데이터를 가져오는 함수
LEAD : 이끈다. 앞장서다 -- 후행 데이터를 가져오는 함수
사용법 - (컬럼명, 차이, 0 )
LAG ( expr, offset, default ) OVER ( PARTITION BY 절 or ORDER BY 절)
LEAD ( expr, offset, default ) OVER ( PARTITION BY 절 or ORDER BY 절)
보통 합계나 COUNT와 같은 그룹함수식을 이용해 나온 수치에 이전 이후 값을 보이고싶을때 사용하므로
부분그룹화하는 PARTITION 과 같이쓰이며, 정렬되어있어야 원하는 값을 신뢰성있게 가져오기에 함께 사용한다
-- LAG / LEAD 를 이용하여 특정컬럼에 선/후 행 가져오기
select 기준년월
,to_char(sum(본인여신잔액), '999,999,999,999') as 당월매출
,LAG(to_char(sum(본인여신잔액), '999,999,999,999'),1,0) OVER (ORDER BY 기준년월) 전월매출 -- 선행 데이터
,LEAD(to_char(sum(본인여신잔액), '999,999,999,999'),1,0) OVER (ORDER BY 기준년월) 다음월매출 -- 후행데이터
from e_cust_mon_info
where 기준년월 like '%2014%'
group by 기준년월
order by 기준년월
;
'Work > DataBase' 카테고리의 다른 글
[EDW] 데이터흐름 - 기간계, ODS, EDW, DM, OLAP (0) | 2020.04.07 |
---|---|
[Excel] Mecro, vlookup, hlookup, 피봇 (0) | 2020.03.11 |
DB 자격증 총정리 - DAP/DAsP, SQLP/SQLD, ADP/ADsP, OCA/OCP/OCM (0) | 2020.03.09 |
[ORACLE] NULL값 다루기 (0) | 2020.02.16 |
[ORACLE] 오라클 날짜함수 , 형식지정 (0) | 2020.02.16 |