目次
データをグループ化する group by
group by で指定する列名によってグループ化されます。
基本構文
1 2 3 4 5 6 |
select 列名 from テーブル名 group by 列名; |
例題:countryテーブルのRegionごとの数をcountしてください。カラムはRegionとcountで表示してください。
1 2 3 4 5 6 7 8 |
use world; select Region, count(*) from country group by Region; |
練習1:countryテーブルでPopulationが30,000未満のcountryをRegion数で表示ください。
構文を利用してテーブル情報を取得してみてください。
カラムはPopulationとcount(distinct Region)になります。
【初心者向けDB講座-MySQL編-】#4-2(練習の答え)
集約結果をさらに絞り込む having
where句 と同様に条件に合致する行だけに絞り込めます。
テーブルのデータを集約した結果に対して、条件式を適用したい場合に利用できます。
基本構文
1 2 3 4 5 6 7 8 9 10 11 |
select 列1, ... from テーブル名 where 条件式 group by 列1, ... having 条件式; |
記述順序は以下の通りです。間違えないように気をつけましょう。
No | 句 | 説明 |
---|---|---|
1 | select | 取得カラムの指定 |
2 | from | 対象テーブルの指定 |
3 | where | 絞り込み条件の指定 |
4 | group by | グループ化の条件指定 |
5 | having | グループ化した後の絞り込み条件を指定 |
6 | order by | 並び替え条件を指定 |
7 | limit | 取得する行数の制限 |
例題:whereとhaving句を用いてcountryテーブルでPopulationが1,000以上30,000未満のcountryをRegion数で表示してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
use world; select Population, count(distinct Region) from country where Population >= 0 and Population < 30000 group by Population having Population >= 1000 ; |