目次へ

5.4. 集約関数

集約関数とは、1つの列グループに対して施すことのできる演算機能をいいます。集約関数は列グループ全体につき 1つの値を生成します。集約関数には次の 5つがあります。

SUM( )
指定条件によって得られた列の値の合計を求める関数
AVG( )
指定条件によって得られた列の値の平均値を求める関数
MAX( )
指定条件によって得られた列の値の中で最大値を返す関数
MIN( )
指定条件によって得られた列の値の中で最小値を返す関数
COUNT( )
指定条件によって得られた表の基数、すなわち行数を求める関数

以下に集約関数を用いた例を示します。

受注表から、SUM( ) を用いて受注個数の合計値を求めます。

-- sample.14-1 --
/* 合計の算出 */

  SELECT SUM(受注個数) FROM 受注表 ;

/* 実行結果 */

 SUM(受注個数)
 ───────
 220

受注表から、AVG( ) を用いて受注個数の平均値を求めます。

-- sample.14-2 --
/* 平均値の算出 */

  SELECT AVG(受注個数) FROM 受注表 ;

/* 実行結果 */

 AVG(受注個数)
 ───────
 18.33333

受注表から、MAX( ) を用いて受注個数の最大値を求めます。

-- sample.14-3 --
/* 最大値の算出 */

  SELECT MAX(受注個数) FROM 受注表 ;

/* 実行結果 */

 MAX(受注個数)
 ───────
 30

受注表から、MIN( ) を用いて受注個数の最小値を求めます。

-- sample.14-4 --
/* 最小値の算出 */

  SELECT MIN(受注個数) FROM 受注表 ;

/* 実行結果 */

 MIN(受注個数)
 ───────
 10

COUNT( ) を用いて、受注表の行数を求めます。

-- sample.14-5 --
/* 行数の算出 */

  SELECT COUNT(*) FROM 受注表 ;

/* 実行結果 */

 COUNT(*)
 ────
 12

受注表から、COUNT( ) を用いて顧客コードの種類の数を求めます。COUNT(DISTINCT 列名 ) とすることで、指定列の NULL 値以外を持つ値で、しかも異なる値を持つ行数を返します。

-- sample.14-6 --
/* 行数の算出 */

  SELECT COUNT(DISTINCT 顧客コード) FROM 受注表 ;

/* 実行結果 */

 COUNT(DISTINCT 顧客コード)
 ────────────
 3

受注表から、顧客コードが 001 の行数、その受注個数の合計、平均値、最大値及び最小値を表示させるには次のように記述します。

-- sample.14-7 --
/* 集約関数による出力 */

  SELECT COUNT(*) , SUM(受注個数) , AVG(受注個数) ,
         MAX(受注個数) , MIN(受注個数)
         FROM 受注表 WHERE 顧客コード = '001' ;

/* 実行結果 */

 COUNT(*) SUM  AVG       MAX  MIN
 ──────── ───  ────────  ───  ───
 6        115  19.16666   30   10

/* 確認 */

  SELECT * FROM 受注表 WHERE 顧客コード = '001' ;

/* 確認:実行結果 */

 受注番号 顧客コード  商品コード 受注個数 納品日
 ─────── ───────── ──────── ─────── ──────
 10001   001       102      30      20010401
 10003   001       103      10      20010402
 10004   001       103      15      20010402
 10006   001       101      15      20010404
 10009   001       102      20      20010406
 10011   001       102      25      20010407

関連記事

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp