データベース:集合関数
■ 集合関数
- 集合関数には、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:○