2013/08/27

10-01.集計関数(Aggregate function)【集計関数とは? 】

■集計関数とは?
 -複数行またはテーブル全体行から1つの結果値を返す関数
 -GROUP BYを使用してグループ毎、1つの結果に纏められる。
 -HAVINGを使用して集計関数を利用した条件比較ができる。
 -MIN、MAX関数はすべてのタイプに利用できる。
 -一般的に使われている集計関数はAVG、COUNT、MAX、MIN、SUM等がある。

■COUNT:検索された行の数を返す。

SQL> SELECT COUNT(deptno) FROM dept;

COUNT(DEPTNO)
-------------
            4



■MAX:コラム値の中で最大値を返す
--salコラム値の中で最大値を返す
SQL> SELECT MAX(sal) salary FROM emp;

    SALARY
----------
      5000



■MIN:コラム値の中で最小値を返す
--salコラム値の中で最小値を返す
SQL> SELECT MIN(sal) salary FROM emp;

    SALARY
----------
       800



■AVG:平均値を返す
--30部署の社員平均給与を小数点1桁以下で四捨五入
SQL> SELECT ROUND(AVG(sal),1) salary
  2  FROM emp
  3  WHERE deptno = 30;

    SALARY
----------
      1630



■SUM:検索されたコラムの合計を返す。
--30部署の社員給与の合計
SQL> SELECT SUM(sal) salsry
  2  FROM emp
  3  WHERE deptno = 30;

    SALSRY
----------
      8150



■STDDEV:標準偏差を返す。
--30部署社員の給与標準偏差を返す
SQL> SELECT ROUND(STDDEV(sal), 3) salary
  2  FROM emp
  3  WHERE deptno = 30;

    SALARY
----------
   726.808



■集計関数の例
--部署別社員数、最大給与、最小給与、給与合計、平均給与を検索する
QL> SELECT deptno 部署番号, COUNT(*) 社員数,
 2         MAX(sal) 最大給与, MIN(sal) 最小給与,
 3         SUM(sal) 給与合計, ROUND(AVG(sal)) 平均給与
 4  FROM emp
 5  GROUP BY deptno
 6  ORDER BY SUM(sal) DESC;

 部署番号     社員数   最大給与   最小給与   給与合計   平均給与
--------- ---------- ---------- ---------- ---------- ----------
       20          5       3000        800      10875       2175
       10          3       5000       1300       8750       2917
       30          5       2850        950       8150       1630


0 件のコメント:

コメントを投稿

QLOOKアクセス解析