|
あるフィールド毎の集計をしたいといった場合、group byを使用します。 group byはwhere句の後ろで指定します。書式は、 select フィールド名 from テーブル名 where 検索条件 group by グループ化したいフィールド(複数フィールド指定可) ;というようになります。 ここで注意しなくてはいけないのは、select句のフィールドは集計関数又はgroup byで指定したフィールドしか指定できないという点です。 以下のSQLは、受注テーブルについてのSQLです。取引先は'DAIEI'で、itm毎の登録件数をcount(*)で表示します。 select count(*),itm from juchu_tbl where torihiki_saki = 'DAIEI' group by itm;select句のitmはgroup byで指定してますのでselect句に指定できます。またcount(*)は集計関数なのでselect句で指定できます。 このSQLの結果は以下のようになります。
count(*) itm
-------- -------
8 TV
11 video
10 radio
6 air-con
2 mirror
これでitm毎の登録件数を抽出することができましたが、さらにこの結果に対して、条件を指定することができます。having 句を使用します。having句は、group byの後ろで指定します。 以下のSQLは、登録件数が10未満のみを表示します。条件はhaving句で指定します。 select count(*),itm from juchu_tbl where torihiki_saki = 'DAIEI' group by itm having count(*) < 10;結果は以下のようになります。
count(*) itm
-------- -------
8 TV
6 air-con
2 mirror
|