일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- GIT
- 고전역학
- flet
- 역학
- write by GPT-4
- android
- 유닉스
- kotlin
- 인프라
- lombok
- 리눅스
- JVM
- 코틀린
- Spring boot
- 소프트웨어공학
- 뉴턴역학
- 시스템
- GPT-4's answer
- NIO
- python
- 웹 크롤링
- 자바
- chatGPT's answer
- 파이썬
- Database
- write by chatGPT
- 자바네트워크
- 자바암호
- oracle
- Java
- Today
- Total
Akashic Records
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 |