포스팅 목차
o STATS_MODE
문법
stats_mode::=
목적
STATS_MODE 함수는 값의 집합을 인수로 취하여, 가장 큰 빈도를 가지는 값(최빈값, mode)을 반환한다.
다수의 최빈값이 존재하는 경우, 오라클 데이터베이스는 1개의 최빈값을 선택하고 해당 값만을 반환한다.
복수의 최빈값(만약 복수의 최빈도 값이 존재하면)을 획득하기 위하여, 불확정적인 쿼리에 표시된 것처럼 다른 함수를 조합하여 사용해야 한다.
Oracle Programming |
SELECT x
FROM (SELECT x, COUNT(x) AS cnt1
FROM t GROUP BY x)
WHERE cnt1 = (SELECT MAX(cnt2) FROM (SELECT COUNT(x) AS cnt2 FROM t GROUP BY x));
관련 내용
STATS_MODE 함수에서 expr 인수의 문자 값을 비교학 위해 사용된는 정렬을 정의하는 언어 정렬 순서 결정 규칙(대조, collation determination rules)과 이 함수의 반환 값이 문자 값일 때 할당되는 정렬을 정의하는 언어 정렬 순서 파생 규칙(collation derivation rules)에 대한 정보는 "Oracle Database Globalization Support Guide"의 부록 C를 참조하라.
관련 함수
함수명 | 함수내용 |
AVG | 지정된 칼럼에 대한 조건을 만족하는 데이터를 기준으로 Null을 제외한 평균값을 반환한다. |
COUNT | 쿼리에 의해 반환되는 관측치 행의 개수를 반환한다. 집계 함수 또는 분석함수로 이용할 수 있다. |
FIRST |
그룹별 또는 전체 데이터에 대하여 FIRST와 LAST 함수는 데이터를 정렬한 후 그룹별(전체 데이터) FIRST(최초) 또는 LAST(최종) 값을 선택하여 지정한 작업을 수행한다. 집계 함수 또는 분석함수에서 이용될 수 있다. |
LAST | 그룹별 또는 전체 데이터에 대하여 FIRST와 LAST 함수는 데이터를 정렬한 후 그룹별(전체 데이터) FIRST(최초) 또는 LAST(최종) 값을 선택하여 지정한 작업을 수행한다. 집계 함수 또는 분석함수에서 이용될 수 있다. |
MAX | 지정한 인수를 기준으로 그룹 또는 전체 데이터에 대한 최댓값을 반환한다. |
MIN | 지정한 인수를 기준으로 그룹 또는 전체 데이터에 대한 인수의 최솟값을 반환한다. |
MEDIAN |
연속된 분산 모델을 가정한 역 분포 함수이다. 이 함수는 수치형 데이터 또는 일자(Date)에 대한 중앙값 또는 값의 정렬 후에 보간법을 사용하여 중앙값을 계산하여 반환한다. |
STATS_MODE |
값의 집합을 인수로 취하여, 가장 큰 빈도를 가지는 값(최빈값, mode)을 반환한다. |
PERCENTILE_CONT | 연속된 분포 모델을 가정하여 인수로 지정한 백분위 값에 해당하는 값을 계산하는 역 분포 함수(inverse distribution function)이다. |
PERCENTILE_DISC | 이산 분포 모형을 가정하는 역 분포 함수이다. 사용자가 지정한 백분위수에 해당하는 데이터 값을 검색하고, 정확하게 일치하는 데이터 값이 없으면 지정한 백분위 값의 주변 데이터 정렬 옵션에 따라 우선순위가 빠른 바로 앞의 관측치 값을 반환한다. |
STDDEV | 수치형 인수 expr의 표본표준편차(sample standard deviation)를 반환한다. |
SUM | 그룹 또는 전체 데이터에 대한 수치형 인수 expr에 대한 값의 합을 반환한다. |
VARIANCE | expr의 분산을 반환한다. 집계 함수 또는 분석함수로 이용된다. |
예제
다음 예제는 hr.employees 테이블에서 부서별 급여의 최대 빈도 값을 반환한다.
Oracle Programming |
SELECT department_id, STATS_MODE(salary)
FROM employees
GROUP BY department_id
ORDER BY department_id, stats_mode(salary);
Results |
DEPARTMENT_ID STATS_MODE(SALARY)
------------- ------------------
10 4400
20 6000
30 2500
40 6500
50 2500
60 4800
70 10000
80 9500
90 17000
100 6900
110 8300
7000
존재하는 모든 최빈값을 조회해야 하는 경우(여러 모드가 있는 경우) 다음 예제와 같이 다른 함수를 함께 조합하여 검색할 수 있다:
Oracle Programming |
SELECT commission_pct
FROM ( SELECT commission_pct, COUNT(commission_pct) AS cnt1 FROM employees
GROUP BY commission_pct)
WHERE cnt1 =
( SELECT MAX (cnt2)
FROM ( SELECT COUNT(commission_pct) AS cnt2
FROM employees GROUP BY commission_pct))
ORDER BY commission_pct;
Results |
COMMISSION_PCT
--------------
.2
.3
오라클 SQL 함수(Oracle SQL Function) 목록 리스트 링크 |
[SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE] SQL EMP 예제로 만나는 테이블 데이터 처리 방법 리스트 링크 |
2024.01 수정
반응형
'오라클 게시판 > 오라클 함수' 카테고리의 다른 글
【오라클(Oracle) SQL 함수】 STATS_ONE_WAY_ANOVA 함수 (0) | 2021.10.20 |
---|---|
【오라클(Oracle) SQL 함수】 STATS_MW_TEST 함수 (0) | 2021.10.20 |
【오라클(Oracle) SQL 함수】 STATS_KS_TEST 함수 (0) | 2021.10.20 |
【오라클(Oracle) SQL 함수】 STATS_F_TEST 함수 (0) | 2021.10.20 |
【오라클(Oracle) SQL 함수】 STATS_CROSSTAB 함수 (0) | 2021.10.20 |
댓글