グループ単位で集計した結果を絞り込む(1)
SELECT PrefecturalID AS 都道府県 , COUNT(*) AS 顧客数 FROM Customers GROUP BY PrefecturalID HAVING COUNT(*) >= 3 ;
HAVING句の登場。書き順は1)SELECT、2)FROM、3)テーブル名、4)GROUP BY、5)グループ化列名(GROUP BYの方)、6)グループ化列名(SELECTの方)、7)集計関数、8)HAVING、9)条件、の順です。だいぶ長くなってきました。
「CustomersテーブルからPrefecturalIDでグループ化して、都道府県と顧客数を取り出す。都道府県はPrefecturlID、顧客数はCOUNTした数、ただし顧客数は3人以上」という順番。
HAVING句でレコードを絞り込んだ結果に対してSELECT句で指定した列のデータを取ってくるという動作イメージなので、私だったらSELECTの中身よりも先にHAVINGを書きたいです。