SQL Server 2019でGROUP BYとHAVINGを使ってグループ化の条件を指定する
環境
Windows 10 Home 64bit
Microsoft SQL Server 2019
構文
SELECT 列名 FROM テーブル名 WHERE 条件式 GROUP BY 列名 HAVING 条件式
キーワードについて
WHERE
条件で抽出した結果をGROUP BYでグループ化します
HAVING
GROUP BYでグループ化したあとにHAVINGの条件で抽出します
使用例1
グループ化したレコードで件数指定します
SELECT USERNAME,COUNT(USERNAME) FROM USER_TBL WHERE CITY = '東京' GROUP BY USERNAME HAVING COUNT(*) > 1;
説明
「GROUP BY USERNAME」を使ってユーザー名前(USERNAME)ごとにグループ化します。
「HAVING COUNT(*) > 1」でグループ化したユーザー名前(USERNAME)の件数が1件より大きいレコードを抽出します。
使用例2
グループ化したレコードで合計指定します
SELECT USERNAME,SUM(SCRORE) FROM USER_TBL GROUP BY USERNAME HAVING SUM(SCRORE) > 95;
説明
「GROUP BY USERNAME」を使ってユーザー名前(USERNAME)ごとにグループ化します。 「HAVING SUM(SCRORE) > 95」で点数(SCORE)合計が95以上を抽出します。