Skip Headers

오라클 10g 함수
10g Release 1 (10.1)
Go to Documentation Home
HOME
Go to Book List
ORA_home
Go to Table of Contents
연구회
Go to Index
자료실
Go to Master Index
ORA_10G
Go to Feedback page
MAIL

Go to previous page
Previous
Go to next page
Next

MAX

문법

MAIN

max::=
Description of max.gif follows

그림 설명


참 조 :

"Analytic Functions " for information on syntax, semantics, and restrictions

목적

MAIN

MAX 함수는 인수중에서 최대값을 반환한다. 집계함수, 분석 함수로 이용가능하다.

만약 DISTINCT를 지정했다면, analytic_clause query_partition_clause을 지정할수 있다. 그러나, order_by_clause  windowing_clause은 허용하지 않는다.


예제

 

MAIN

집계 예제

다음 예제는 hr.employees 테이블에서 최고 급여를 계산한다.

SELECT MAX(salary) "Maximum" FROM employees;
 
   Maximum
----------
      24000

분석 예제

다음 예제는 같은 manager_id내에서 최고 급여를 계산한다.

SELECT manager_id, last_name, salary, 
   MAX(salary) OVER (PARTITION BY manager_id) AS mgr_max
   FROM employees;

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의 최대값(최대 급여)을 계산후에 그 최대값(최대 급여)을 가지는 사람을 찾는 방법이다.

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;

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