茨の道も一歩から

インフラ構築からプログラミング(Python・JavaScript)までITに関するブログです。

データベース:集合関数

■ 集合関数

  • 集合関数には、SUM,AVG,MAX,MIN,COUNTがある。

以下の売上明細テーブルを用いて、説明して行く。

[売上明細]

伝票番号 明細番号 分類コード 商品名 金額
070315-1 0001 PC ノートパソコン 129800
070315-1 0002 PR プリンタ 17500
070315-2 0001 SC スキャナ 9800
070315-3 0001 PR プリンタ 17500
070315-3 0002 PR インクカートリッジ 1060
070315-4 0001 PC ノートパソコン 129800

SUM

SUMの使用例

  • 1日の売上金額の合計値を求めることが出来る。
SELECT SUM(金額) AS 売上合計 FROM 売上明細;
売上合計
305460

AVG

AVGの使用例

  • 1日の売上金額の平均値を求めることが出来る。
SELECT AVG(金額) AS 売上平均 FROM 売上明細;
売上平均
50910

MAX

MAXの使用例

  • 1日の売上金額の最大値を求めることが出来る。
SELECT MAX(金額) AS 売上最大 FROM 売上明細;
売上最大
129800

MIN

MINの使用例

  • 1日の売上金額の最小値を求めることが出来る。
SELECT MIN(金額) AS 売上最小 FROM 売上明細;
売上最小
1060

COUNT

COUNTの使用例

  • 1日の売上件数を求めることが出来る。
SELECT COUNT(*) AS 売上件数 FROM 売上明細;
売上件数
6

集合関数とGROUP BY句

GROUP BY句との使用例

  • 1日の伝票毎の売上合計を求めることが出来る。
SELECT 伝票番号,SUM(金額) AS 売上合計 FROM 売上明細 GROUP BY 伝票番号;
伝票番号 売上合計
070315-1 147300
070315-2 9800
070315-3 18560
070315-4 129800
  • 1日の分類毎の販売数を求めることが出来る。
SELECT 分類コード,COUNT(*) AS 販売数 FROM 売上明細 GROUP BY 分類コード;
分類コード 販売数
PC 2
PR 3
SC 1

【試験対策】

  • SUM,AVG,MAX,MIN,COUNT(列名)はNULL値を対象としない。
  • COUNT(*)は、行数をカウントするので列にNULL値があってもカウントされる。
  • GROUP BY句は、集合関数を使用してこそ意味がある。
  • GROUP BY句を指定した場合、SELECT句には、GROUP BY句で指定した列名と、集合関数しか指定出来ない。
  • ORDER BY句に、集合関数を直接指定出来ない。
SELECT 伝票番号,SUM(金額) FROM 売上明細
GROUP BY 伝票番号
ORDER BY SUM(金額) DESC:× → ORDER BY 2 DESC:○

目次へ戻る