Oracleグループ関数


グループ関数の特徴

  • グループの関数は、他の検索オブジェクトと同様に
  • を使用することはできません.
  • 組の関数はNULLを値として認識していないため、
  • は処理されていない.

    COUNT(列名)


    カラム値の数を返す関数です.
    検索行の数を返します.
    検索オブジェクトの検索ロー数が異なる場合、エラーが発生します.
    SELECT COUNT(EMPNO),COUNT(COMM) FROM EMP;

    列名ではなく[*]を使用して、テーブルに格納されているすべての列の行数を返します。

    SELECT COUNT(*) FROM EMP;

    MAX(列名)


    カラム値の最大値を返す関数
    SELECT MAX(ENAME) FROM EMP;

    MIN(カラム名)


    カラム値の最小値を返す関数
    SELECT MIN(HIREDATE) FROM EMP;

    SUM(列名)


    数値列の値を渡すことで数値を計算して返します.
    SELECT SUM(SAL) FROM EMP;

    AVG(列名)


    数値列の値を渡すことによって平均値を計算し、平均値を返します.
    SELECT AVG(SAL) FROM EMP;

    GROUP BY


    グループ関数を使用する場合は、グループを列値で区切って検索できます.
    カラム値が同じ場合は、同じグループとして処理します.
    형식)
    SELECT 그룹함수[,검색대상,...] FROM 테이블명,테이블명,... 
    [WHERE 조건식]
    GROUP BY {컬럼명|연산식|함수},...
    [ORDER BY {컬럼명|연산식|별칭|첨자} {ASC|DESC},...]

    GROUP BY構文で使用されるグループ式は、グループ関数などの検索対象とすることができる

    SELECT DEPTNO,COUNT(*) FROM EMP GROUP BY DEPTNO ORDER BY DEPTNO;

    HAVING


    GROUP BY構文パケット検索結果のパケット条件を提供することにより検索する機能
    형식)
    SELECT 그룹함수[,검색대상,...] FROM 테이블명,테이블명,...
    [WHERE 조건식]
    GROUP BY {컬럼명|연산식|함수},...
    HAVING 그룹조건식 
    [ORDER BY {컬럼명|연산식|별칭|첨자} {ASC|DESC},...]
    --EMP 테이블에서 업무가 [PRESIDENT]인 사원을 제외한
    --모든 사원의 업무별 평균 급여 검색하기
    SELECT JOB,CEIL(AVG(SAL)) AVG_SAL FROM EMP
    GROUP BY JOB HAVING JOB<>'PRESIDENT';