포스팅 목차
o MAX
문 법
max::=
목 적
MAX 함수는 지정한 인수를 기준으로 그룹 또는 전체 데이터에 대한 최댓값을 반환한다. 집계 함수, 분석 함수로 이용 가능하다.
만약 DISTINCT를 지정했다면, analytic_clause 인수에 query_partition_clause 절을 지정할 수 있다. 그러나, order_by_clause과 windowing_clause 절은은 허용하지 않는다.
- expr 인수에 대한 유효한 형태에 관한 정보는 "About SQL Expressions" 을 참조하고, 2진수-부동 소수점 비교 의미론에 대한 정보는 "Floating-Point Numbers", 집계 함수에 대한 정보는 "Aggregate Functions"를 참조하시오.
- expr 인수의 문자 값을 비교하기 위해 MAX가 사용하는 데이터 정렬 방식을 정의하는 데이터 정렬 결정 규칙(collation determination rules)과 이 함수의 반환 값이 문자 값인 경우 이 함수의 반환 값에 할당되는 데이터 정렬 방식을 정의하는 데이터 정렬 파생 규칙(collation derivation rules)에 대한 Oracle Database Globalization Support Guide 의 부록 C를 참조하라.
패키지 함수 비교 (Oracle, Pandas, R Prog, Dplyr, Sqldf, Pandasql, Data.Table)
관련 함수
함수명 | 함수내용 |
AVG | 지정된 칼럼에 대한 조건을 만족하는 데이터를 기준으로 Null을 제외한 평균값을 반환한다. |
COUNT | 쿼리에 의해 반환되는 관측치 행의 개수를 반환한다. 집계 함수 또는 분석함수로 이용할 수 있다. |
MAX | 지정한 인수를 기준으로 그룹 또는 전체 데이터에 대한 최댓값을 반환한다. |
MIN | 지정한 인수를 기준으로 그룹 또는 전체 데이터에 대한 인수의 최솟값을 반환한다. |
MEDIAN |
연속된 분산 모델을 가정한 역 분포 함수이다. 이 함수는 수치형 데이터 또는 일자(Date)에 대한 중앙값 또는 값의 정렬 후에 보간법을 사용하여 중앙값을 계산하여 반환한다. |
STDDEV | 수치형 인수 expr의 표본표준편차(sample standard deviation)를 반환한다. |
SUM | 그룹 또는 전체 데이터에 대한 수치형 인수 expr에 대한 값의 합을 반환한다. |
VARIANCE | expr의 분산을 반환한다. 집계 함수 또는 분석함수로 이용된다. |
예 제
집계 예제
다음 예제는 hr.employees 테이블에서 최대 급여(급여의 최댓값)를 계산한다.
Oracle Program |
SELECT MAX(salary) "Maximum"
FROM employees;
Results |
Maximum
----------
24000
분석 예제
다음 예제는 각 직원을 대상으로 동일한 은 동일한 관리자(manager_id)에 속한 직원 중 최대 급여를 계산한다.
Oracle Program |
SELECT manager_id, last_name, salary,
MAX(salary) OVER (PARTITION BY manager_id) AS mgr_max
FROM employees;
Results |
MANAGER_ID LAST_NAME SALARY MGR_MAX
---------- ------------------------- ---------- ----------
100 Kochhar 17000 17000
100 De Haan 17000 17000
100 Raphaely 11000 17000
100 Kaufling 7900 17000
100 Fripp 8200 17000
100 Weiss 8000 17000
. . .
만약 INLINE-VIEW로 위의 예제와 동일한 결과를 산출하려면, 각 MANAGER_ID 에 속한 직원들 중 가장 높은 급여를 받는 종업원을 정의할 수 있다. 즉, 동일 MANAGER_ID 의 최댓값(최대 급여)을 계산 후에 그 최댓값(최대 급여)을 가지는 사람을 찾는 방법이다.
Oracle Program |
SELECT manager_id, last_name, salary
FROM ( SELECT manager_id, last_name, salary,
MAX(salary) OVER (PARTITION BY manager_id) AS rmax_sal
FROM employees)
WHERE salary = rmax_sal;
Results |
MANAGER_ID LAST_NAME SALARY
---------- ------------------------- ----------
100 Kochhar 17000
100 De Haan 17000
101 Greenberg 12000
101 Higgens 12000
102 Hunold 9000
103 Ernst 6000
108 Faviet 9000
114 Khoo 3100
120 Nayer 3200
120 Taylor 3200
121 Sarchand 4200
122 Chung 3800
123 Bell 4000
124 Rajs 3500
145 Tucker 10000
146 King 10000
147 Vishney 10500
148 Ozer 11500
149 Abel 11000
201 Goyal 6000
205 Gietz 8300
King 24000
오라클 SQL 함수(Oracle SQL Function) 목록 리스트 링크 |
[SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE] SQL EMP 예제로 만나는 테이블 데이터 처리 방법 리스트 링크 링크 |
2024.01 수정
반응형
'오라클 게시판 > 오라클 함수' 카테고리의 다른 글
【오라클(Oracle) SQL 함수】 MIN 함수 (0) | 2018.11.30 |
---|---|
【오라클(Oracle) SQL 함수】 MEDIAN 함수 (0) | 2018.11.30 |
[오라클 함수] MAKE_REF 함수 (0) | 2018.11.28 |
【오라클(Oracle) SQL 함수】 LTRIM 함수 (0) | 2018.11.27 |
【오라클(Oracle) SQL 함수】 LPAD 함수 (0) | 2018.11.27 |
댓글