728x90
MAX
구문
MAX([ DISTINCT | ALL ] expr) [ OVER (analytic_clause) ]
참고:
구문, 의미, 그리고 제한 사항에 대한 정보는 "Analytic Functions"에 대한 내용을 참조하세요.
목적
MAX는 expr의 최대값을 반환합니다. 이 함수는 집계(aggregaate) 함수 또는 분석(analytic) 함수로 사용할 수 있습니다.
참고:
- expr의 유효한 형태에 대한 정보는 "About SQL Expressions", 이진 부동 소수점 숫자 비교 의미론에 대한 정보는 "Floating-Point Numbers", 집계 함수에 대한 정보는 "Aggregate Functions"를 참조하세요.
- Oracle Database Globalization Support Guide의 부록 C는 MAX 함수가 expr의 문자 값 비교에 사용하는 정렬 결정 규칙(collation determination rules) 및 문자 값일 때 이 함수의 반환 값에 할당되는 정렬 파생 규칙(collation derivation rules)에 대한 정보를 제공합니다.
집계 예제
다음 예제는 hr.employees 테이블에서 가장 높은 급여를 결정합니다.
SELECT MAX(salary) "Maximum"
FROM employees;
Maximum
----------
24000
분석 예제
다음 예제는 각 직원에 대해 해당 직원과 동일한 관리자를 가진 직원들의 가장 높은 급여를 계산합니다.
SELECT manager_id, last_name, salary,
MAX(salary) OVER (PARTITION BY manager_id) AS mgr_max
FROM employees
ORDER BY manager_id, last_name, salary;
MANAGER_ID LAST_NAME SALARY MGR_MAX
---------- ------------------------- ---------- ----------
100 Cambrault 11000 17000
100 De Haan 17000 17000
100 Errazuriz 12000 17000
100 Fripp 8200 17000
100 Hartstein 13000 17000
100 Kaufling 7900 17000
100 Kochhar 17000 17000
. . .
이 쿼리를 부모 쿼리의 절에 포함시키면 각 부서에서 가장 높은 급여를 받는 직원을 결정할 수 있습니다.
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
ORDER BY manager_id, last_name, salary;
MANAGER_ID LAST_NAME SALARY
---------- ------------------------- ----------
100 De Haan 17000
100 Kochhar 17000
101 Greenberg 12008
101 Higgins 12008
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 Fay 6000
205 Gietz 8300
King 24000
22 rows selected.
출처: 오라클 레퍼런스
원문 링크: Oracle MAX 함수 문서
반응형
'코딩 > 오라클 함수' 카테고리의 다른 글
[오라클 레퍼런스 함수] MIN - 최소값 반환 (0) | 2023.08.10 |
---|---|
[오라클 레퍼런스 함수] MEDIAN - 숫자나 날짜 시간의 중간 값 반환 (0) | 2023.08.09 |
[오라클 레퍼런스 함수] MAKE_REF - 테이블 및 뷰(view)의 행에 대한 참조 생성 (0) | 2023.08.09 |
[오라클 레퍼런스 함수] LTRIM - 문자열 왼쪽의 문자(또는 공백) 제거 (0) | 2023.08.09 |
[오라클 레퍼런스 함수] LPAD - 문자열 왼쪽 패딩(padding) (0) | 2023.08.09 |
댓글