【DB】SELECT文(集約関数とグループ化)

DBの勉強の続きをしていきます!!
今回のテーマも前回に引き続きSELECT文について!!



SELECT文

今までに[DML(データ操作言語)][SELECT文(条件)]について勉強してきました。今回もSELECT(参照)文に関わるグループ化について勉強していきたいと思います。


[基本構文]

SELECT 列名,列名,,,, もしくは「*」で列全指定
FROM テーブル名
WHERE 検索条件



GROUP BY

SELECT文の中で、「GROUP BY」句を使用することでグループごとに関数(合計値を求めたり、最大値を求めたり)を使うことができます。「GROUP BY」を使用すると、■「GROUP BY」の後に指定したカラム、■集約関数、■定数、のみしか抽出することができなくなるので注意が必要です。


[構文]

SELECT 列名,列名,,,,
FROM テーブル名
GROUP BY 列名,列名,,, グループ化する列を指定


[例]
USE [TestDB]
GO

--[Store_ID]ごとの[User_Age]の平均値を求める
SELECT AVG([User_Age]),     --平均値
	   [Store_ID],      --GROUP BYで指定した列名
	   '定数'           --定数
FROM [USERMANAGE]
GROUP BY [Store_ID]
GO




集約関数

集約関数とは、「GROUP BY」句と併用して使用されることが多く、平均値や最大値、最小値などを求めることができます。





HAVING

HAVING句は、「GROUP BY」にてグループ化した結果に対して、条件を指定することができる。


[構文]

SELECT 列名,列名,,,,
FROM テーブル名
GROUP BY 列名,列名,,, グループ化する列を指定
HAVING 条件式


[例]
USE [TestDB]
GO

--[Store_ID]に所属している人が2人以上の[User_Age]の平均値を求める
SELECT AVG([User_Age]),     --平均値
	   [Store_ID],      --GROUP BYで指定した列名
FROM [USERMANAGE]
GROUP BY [Store_ID]
HAVING  COUNT(*) >=  2
GO



以上!!




【ブログを始めるなら】

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA