SQL Server GROUP BYした結果に条件を指定する
- 作成日 2022.09.15
- Sql Server
- SQL Server
SQL Serverで、GROUP BYした結果に条件を指定する手順を記述してます。
環境
- OS windows10 pro
- SQL server2017 Version 14.0.3223.3
- SSMS 18.7.1
条件を指定
平GROUP BYした結果に条件を指定するには、「HAVING」を使用します。
HAVING 条件
実際に、以下のテーブルのカラム「age」の平均値をnameをグループ化して、30以上のものだけ取得してみます。
ここでは「Test」というテーブルを使用してます。
「HAVING」を使用します。
SELECT name, AVG([age]) as ave
FROM [dbo].[Test]
GROUP BY [name]
HAVING AVG(CAST([age] as DECIMAL)) > 30
実行結果
平均値が30以上のものだけ取得されていることが確認できます。
where句を使用するとエラーになります。
SELECT name, AVG([age]) as ave
FROM [dbo].[Test]
where AVG(CAST([age] as DECIMAL)) > 30
GROUP BY [name]
メッセージ 147、レベル 15、状態 1、行 3
集計が HAVING 句または選択リスト内のサブクエリにある場合、および集計する列が外部参照の場合にだけ、WHERE 句に集計を含めることができます。
-
前の記事
SQL Server 左から指定した文字数だけ抽出する 2022.09.15
-
次の記事
mongoDB 配列が含まれているものを抽出する 2022.09.15
コメントを書く