目次へ

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
 ──────── ───  ───  ───  ───
 5        100  20   30   10

/* 確認 */

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

/* 確認:実行結果 */

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

関連記事

  • 2. SQL 6 : テーブルのデータを取り出すSQLを簡単に説明します
  • 5. データの参照 1 : テーブルのデータを取り出すSQLを詳しく説明します
  • 5. データの参照 2 : 不等式で条件を付けてデータを操作するSQLについて説明します

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp
Loading