|
SQL 5章 データの参照
5.4. 集約関数集約関数とは、1つの列グループに対して施すことのできる演算機能をいいます。集約関数は列グループ全体につき 1つの値を生成します。集約関数には次の 5つがあります。
以下に集約関数を用いた例を示します。 受注表から、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
|
![]()
![]()
|