일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바암호
- 리눅스
- python
- Java
- jpa
- android
- NIO
- 자바
- kotlin
- spring integration
- flet
- JVM
- 인프라
- 고전역학
- 역학
- 파이썬
- chatGPT's answer
- write by chatGPT
- 유닉스
- 데이터베이스
- spring data jpa
- write by GPT-4
- GPT-4's answer
- 웹 크롤링
- 시스템
- 자바네트워크
- oracle
- 코틀린
- 소프트웨어공학
- Database
- Today
- Total
기억을 지배하는 기록
Analytical Function 본문
Analytical Function
그룹내 순위 관련 함수
예)
Select name, id
rank() over (order by name) rank,
rank() over(partition by name order by id) name_rank
from s_dept;
- RANK
ORDER BY를 포함한 Query 문에서 특정 항목(컬럼)에 대한 순위를 구하는 함수
- DENSE_RANK
RANK 함수와 흡사하지만, 동일한 순위를 하나의 건수로 취금하는 것이 틀린 점
- ROW_NUMBER
RANK 함수가 동일한 값에 대해서는 동일한 순위를 부여하는데 반해 ROW_NUMBER 함수는 유니크한 순위를 부여
일반 그룹 관련 함수
예)
Select mgr, ename, hiredate, sal,
AVG(sal) OVER (PARTITION BY mgr ORDER BY hiredate)
ROW BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS c_mavg
FROM emp
- AVG
파티션 별 윈도우의 평균을 구할 수 있음
- SUM
파티션 별 윈도우의 합을 구할 수 있음
- MAX
파티션 별 윈도우의 최대값을 구할 수 있음
- MIN
파티션 별 윈도우의 최소값을 구할 수 있음
- COUNT
파티션 별 윈도우의 건수를 구할 수 있음
그룹 내 데이터 순서 관련 함수
예)
Select deptno, ename, sal,
FIRST_VALUE(ename) OVER (PARTITION BY depton ORDER BY sal DESC
ROWS UNBOUNDED PRECEDING) AS rich_emp
FROM emp
- FIRST_VALUE
파티션 별 윈도우에서 가장 먼저 나온 값을 구함
- LAST_VALUE
파티션 별 윈도우에서 가장 나중에 나온 값을 구함
- LAG
파티션 별 윈도우에서 이전 몇 번째 행의 값을 가져올 수 있음
- LEAD
파티션 별 윈도우에서 이후 몇 번째 행의 값을 가져올 수 있음
그룹 내 비율가 관련 함수
예)
Select deptno, ename, sal,
PERCENT_RANK() OVER (PARTITION BY deptno ORDER BY sal) AS pr
FROM emp
- PRECENT_RANK
파티션 별 윈도우에서 제일 먼저 나오는 것을 0 으로 제일 늦게 나오는 것을 1 로 하여, 값이 아닌 행의 순서별 백분율을 구함 결과 값은 0~1 사이의 범위를 가짐
- CUME_DIST
파티션 별 윈도우의 전체건수에서 현재 행보다 작거나 같은 건수에 대한 누적백분율을 구함
결과 값은 0~1 사이의 범위를 가짐
- RATIO_TO_REPORT
파티션 내 전체 SUM 값에 대한 행별 컬럼값의 백분율을 소수점으로 구할 수 있음
결과 값은 0~1 사이의 범위를 가짐
- NTILE
파티션 별 전체 건수를 argument 값으로 n 등분한 결과를 구할 수 있음
'오래된글 > DataBase' 카테고리의 다른 글
Big3 Join (0) | 2018.04.15 |
---|---|
ANSI/X3/SPARC (0) | 2018.04.15 |
행을 열로 확장 (0) | 2018.04.15 |
한달을 요일별로 구함 (0) | 2018.04.15 |
인덱스 컬럼의 매칭율 높이는 방법 (0) | 2018.04.15 |