SQL 5章 データの参照
- 5.1. SELECT によるデータの参照
- 5.2. 条件付き参照
- 1. 不等式を使った述語
- 2. ブール演算子を使った述語
- 5.3. 特殊演算子
- 1. IN 演算子
- 2. BETWEEN 演算子
- 3. LIKE 演算子
- 4. IS NULL 演算子
- 5.4. 集約関数
- 5.5. グループ化
- 1. GROUP BY 句
- 2. HAVING 句
- 5.6. 並べ替えと名前付け
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について説明します








