連載
» 2000年12月22日 00時00分 公開

SQL実践講座(3):集計を行う「GROUP BY」句

[篠原光太郎,@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

今回掲載の内容

  • SQLで集計を行うには?
  • 「GROUP BY」句の制約
  • 列名の指定「AS」
  • 特定の集計行のみの表示


SQLで集計を行うには?

 今回は、SQL文での集計の方法(GROUP BY)を説明します。前回までに説明した「SELECT」文では、データを取得し表示させた場合、表示されるデータは元のデータの一部、もしくはすべてでした。今回使用する「GROUP BY」句を使用すると、特定の列をキーにした合計値や平均値などが表示される結果となります。まずは、例1のSQL文を実行してみましょう。前回説明したとおり、「Order Details」テーブルの指定に " "( ダブル・クオーテーション)を使用していますので、注意してくださいね。

【例1】

SELECT * FROM "Order Details"
画面1 OrderDetailsテーブルの内容(画面をクリックすると拡大表示します) 画面1 OrderDetailsテーブルの内容(画面をクリックすると拡大表示します)

 今回使用する「Order Details」テーブルの内容が表示されます。このテーブルは、ある注文(OrderID)に対して、どの製品(ProductID)を、単価いくらで(UnitPrice)、いくつ(Quantity)受注したかを記録しています。

 では、このテーブルを使用して、製品ごとにいくつ注文があったか、合計を計算してみましょう。

【例2】

SELECT ProductID, Sum(Quantity)
FROM "Order Details"
GROUP BY ProductID
画面2 製品ごとに個数の合計をとってみたところ(画面をクリックすると拡大表示します) 画面2 製品ごとに個数の合計をとってみたところ(画面をクリックすると拡大表示します)

 この例2のように、「GROUP BY」というキーワードに続けて、集計のキーとなる列名を指定します。この例では、「製品ごとにいくつ注文があったか」ということでしたので、集計のキーは「製品」、すなわち、「ProductID」となります。

 次に、「SELECT」句の中にある、「Sum(Quantity)」という部分を見てみましょう。これは、Quantity列の合計を求める集計関数です。集計関数には、Sumのほかに次のような関数があります。


 例2の「SELECT」句には、複数の集計関数を指定することも可能です。

【例3】

SELECT ProductID, Avg(UnitPrice), Sum(Quantity)
FROM "Order Details"
GROUP BY ProductID

「GROUP BY」句の制約

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。