반응형
1. 분석함수
- 특정 집합 내에서 결과 건수의 변화없이 해당 집합 안에서 합계 및 카운트 등을 계산 할 수 있는 함수이다.
1) 문법
select C1 , 분석함수(C2, C3, ...) over(PARTITION BY C4 ORDER BY C5) from TABLE_NAME ; |
- 사용하고자 하는 분석 함수를 쓰고 대상 컬럼을 기재 후 PARTITION BY에서 구하는 기준 컬럼을 쓰고 ORDER BY에서 정렬 컬럼을 기재한다.
2) 특정 컬럼의 순위 구하는 함수
- ROW_NUMBER() : 같은 순위가 있어도 무조건 순차적으로 순위를 매긴다. (1, 2, 3, 4, 5, …)
- RANK() : 같은 순위가 있으면 동일 순위로 매기고 그 다음 순위로 건너뛴다. (1, 1, 3, 4, …)
- DENSE_RANK() : 같은 순위가 있으면 동일 순위로 매기고 그 다음 순위를 건너 뛰지 않는다. (1, 1, 2, 3, …)
4) 특정 컬럼의 첫번째 값 혹은 마지막 값을 구하는 함수
- FIRST_VALUE()
- LAST_VALUE()
- RANGE BETWEEN UNBOUNDED PRECEDING (첫번째 로우부터) AND UNBOUNDED FOLLOWING (파티션의 마지막 로우까지) 추가한다. |
- DEFAULT
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW |
5) 특정 컬럼의 이전(PREV) 행의 값 혹은 다음(NEXT) 행의 값을 구하는 함수
- LAG() : 이전 행의 값을 찾는다.
- LEAD() : 다음 행의 값을 찾는다.
반응형
'프로그래밍 > SQL' 카테고리의 다른 글
[SQL] 서브쿼리 구분, ANY, ALL, IN, EXISTS (0) | 2022.10.05 |
---|---|
[SQL] 그룹 함수, Grouping sets(), Cube(), Rollup() (0) | 2022.10.02 |
[SQL] JOIN 데이터 유형과 유형 변환 방법 (0) | 2022.10.01 |
[SQL]집합연산자 UNION, UNION ALL, INTERSECT, EXCEPT (0) | 2022.09.30 |
[SQL] 데이터 함수 COMMIT, INSERT, UPDATE, UPDATE JOIN, DELETE, UPSERT, GROUP BY (0) | 2022.09.29 |