重要なポイント
構文
集計単位
select avg([別名].[カラム名]) from [テーブル名] [別名]
group by [別名].[カラム名];
<例題>
- 学生マスタ(students_mst)からデータを取得すること。
- 抽出条件なし
- カラム:テスト点数(test_score)の平均値を取得(平均点)すること
- 集計単位
- 学科ID(department_id)ごと
select avg(sm.test_score) from students_mst sm
group by sm.department_id;
選択カラムの追加
select
[別名].[カラム名1]
,avg([別名].[カラム名2])
from [テーブル名] [別名]
group by [別名].[カラム名1];
<例題>
- 学生マスタ(students_mst)からデータを取得すること。
- 抽出条件なし
- カラム
- 学科ID(department_id)
- テスト点数(test_score)の平均値を取得(平均点)すること
- 集計単位
- 学科ID(department_id)ごと
select
sm.department_id
,avg(sm.test_score)
from students_mst sm
group by sm.department_id;
集計単位が2つ以上
select
[別名].[カラム名1]
,[別名].[カラム名2]
,avg([別名].[カラム名3])
from [テーブル名] [別名]
group by [別名].[カラム名1]
,[別名].[カラム名2];
<例題>
- 学生マスタ(students_mst)からデータを取得すること。
- 抽出条件なし
- カラム
- 学科ID(department_id)
- 性別(gender)
- テスト点数(test_score)の平均値を取得(平均点)すること
- 集計単位
- 学科ID(department_id)ごと
- 性別(gender)ごと
select
sm.department_id
,sm.gender
,avg(sm.test_score)
from students_mst sm
group by sm.department_id
,sm.gender;
条件追加
select
[別名].[カラム名1]
,[別名].[カラム名2]
,avg([別名].[カラム名3])
from [テーブル名] [別名]
where [別名].[カラム名4] = [条件1]
and [別名].[カラム名5] = [条件2]
group by [別名].[カラム名1]
,[別名].[カラム名2];
<例題>
- 学生マスタ(students_mst)からデータを取得すること。
- 抽出条件
- 学科ID(department_id)が〈2〉以上
- かつ学科ID(department_id)が〈10〉未満
- カラム
- 学科ID(department_id)
- 性別(gender)
- テスト点数(test_score)の平均値を取得(平均点)すること
- 集計単位
- 学科ID(department_id)ごと
- 性別(gender)ごと
select
sm.department_id
,sm.gender
,avg(sm.test_score)
from students_mst sm
where sm.department_id >= 2
and sm.department_id < 10
group by sm.department_id
,sm.gender;
並び順追加
select
[別名].[カラム名1]
,[別名].[カラム名2]
,avg([別名].[カラム名3])
from [テーブル名] [別名]
where [別名].[カラム名4] = [条件1]
and [別名].[カラム名5] = [条件2]
group by [別名].[カラム名1]
,[別名].[カラム名2]
order by [別名].[カラム名1];
<例題>
- 学生マスタ(students_mst)からデータを取得すること。
- 抽出条件
- 学科ID(department_id)が〈2〉以上
- かつ学科ID(department_id)が〈10〉未満
- カラム
- 学科ID(department_id)
- 性別(gender)
- テスト点数(test_score)の平均値を取得(平均点)すること
- 集計単位
- 学科ID(department_id)ごと
- 性別(gender)ごと
- 並び替え
- 学科ID(department_id)を降順
select
sm.department_id
,sm.gender
,avg(sm.test_score)
from students_mst sm
where sm.department_id >= 2
and sm.department_id < 10
group by sm.department_id
,sm.gender
order by sm.department_id desc;
注意すべきポイント
集計関数以外で「select」と「from」の間で選択されたカラムは、「group by」に記述しないといけない。