[Oracle] LAG( )함수 - 이전 행 값 가져오기, LEAD( )함수 - 이후 행 값 가져오기
LAG( ) 함수 - 이전 행 값을 가져올 때 사용 - 문법 LAG ( 출력할 컬럼명, OFFSET, 기본 출력 값 ) OVER ( Query_partition 구문, Order by 정렬할 컬럼 ) 컬럼명 : 값을 가져올 컬럼명 OFFSET : 이전 행의 기준 (ex) LAG ( job, 1, 0 ) => job 컬럼의 한 행 위의 값. 이전 행이 없을 경우 0 출력 (ex) LAG ( job, 3, 2 ) => job 컬럼의 세 행 위의 값. 해당 값이 없을 경우 2 출력 기본 출력 값 : 값이 없을 경우 기본으로 출력하는 값 LEAD( ) 함수 - 이후 행 값을 가져옴 - 문법 LEAD ( 출력할 컬럼명, OFFSET, 기본 출력 값 ) OVER ( Query_partition 구문, Order b..
[Oracle] 분석함수, 윈도함수 - GROUPING SETS ( ), LISTAGG( ), PIVOT( ), UNPIVOT( ) 함수
GROUPING SETS( ) - 그룹핑 조건이 여러 개일 경우 유용하게 사용됨 - 하나의 테이블에 대한 여러 가지 그룹 함수가 사용될 경우 해당 함수를 사용하는 것이 좋음 - 예시. 학년별, 학과별 인원수와 키, 몸무게 각각의 합계 동시 출력 SELECT grade, deptn01, COUNT(*), SUM(height), SUM(weight) FROM STUDENT GROUP BY grouping sets (grade, deptn01) ORDER BY grade, deptn01; LISTAGG( ) 함수 - Oracle 11g에서 추가된 함수 - 일정 기준과 구분자를 통해 데이터가 한 줄로 연결되어 출력됨 - LISTAGG( 컬럼 이름, '구분자' ) WITHIN GROUP ( ORDER BY 컬럼명..