データベース千夜一夜第21回

データの集計(3)~集計関数とグループ化 長谷川裕行
有限会社 手國堂

グループ化と集計の例

グループ化と集計関数を使った集計の例を、いくつか紹介しておきましょう。


- 商品ごとの販売数 -

テーブル「累積売上_fx」から商品ごとの販売数を取得します。「商品名」でグループ化し、「数量」フィールドの値をSUM関数で合計します。

 SELECT 商品名, SUM(数量) AS 販売数
 FROM 累積売上_fx
 GROUP BY 商品名



- 男女別の最高額 -

テーブル「累積売上_fx」から、男女別の最高販売額を取得します。「性別」でグループ化し、MAX関数で「金額」フィールドの最大値を元めます。

 SELECT 性別, MAX(金額) AS 最高額
 FROM 累積売上_fx
 GROUP BY 性別



- 仕入先ごとの在庫数の合計 -

商品名に仕入先名と在庫数を合わせて表示するよう関連付けしたビュー「vw在庫一覧」(コラム参照)から、仕入先ごとの在庫数合計を取得します。

「仕入先名」フィールドでグループ化し、SUM関数で「在庫」フィールドの値を合計します。

 SELECT 仕入先名, SUM(在庫) 在庫合計
 FROM vw在庫一覧
 GROUP BY 仕入先名


ビュー「vw在庫一覧」のデザイン

第18回で紹介したビュー「vw在庫一覧」の中身は、『商品マスターから商品名と仕入単価、仕入先マスターから仕入先名、在庫マスターから在庫数──をそれぞれ抽出し、在庫の少ない順に一覧表示する』SQLです。

 SELECT 商品_mr.商品ID, 商品_mr.品名, 商品_mr.仕入単価,
       商品_mr.仕入先ID, 仕入先_mr.仕入先名, 在庫_mr.在庫
 FROM  商品_mr, 仕入先_mr, 在庫_mr
 WHERE 商品_mr.仕入先ID = 仕入先_mr.仕入先ID
 AND
       商品_mr.商品ID = 在庫_mr.商品ID
 ORDER BY 在庫

ビューを作成するには、EnterpriseManagerでデータベースを選択し、「ビュー」を選んでメニューから「操作」→「新規ビュー」を選択します。デザイン画面は画面C1のようになります。




トップページ
SUM関数とグループ化
集計関数の使用例
グループ化と集計
HAVING句による絞り込み
グループ化と集計の例
商品ごとの販売数
男女別の最高額
仕入先ごとの在庫数の合計
DISTINCTオプション
あとがき
Copyright © MESCIUS inc. All rights reserved.