본문 바로가기
오라클 게시판/오라클 함수

【오라클(Oracle) SQL 함수】 MAX 함수

by 기서무나구물 2018. 11. 28.

포스팅 목차

    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 수정

    반응형

    댓글