SQL(GROUP BY句)
集約操作(GROUP BY句)
データセットを見ていると国によっては複数のレコードを持っていることが分かります。GROUP BY 句を利用すると指定したカラムの値でグループ分けした結果に対して COUNT 関数などを利用した集計を行うことができます。
SELECT
<カラム>
FROM
<テーブル>
WHERE
<条件>
GROUP BY
<集約するカラム> -- 複数指定可能
HAVING
<集約後の結果に対する条件>
- HAVING
集約後の結果に対する条件付与
→GROUP BYで特定のデータ条件に絞って集約
→その結果に対してさらに条件を絞る
- WHERE
集約前の結果に対する条件付与
FROMやJOIN ONで調べた結果に対して条件を絞る
SQLの評価順序が下記のようになっているため、条件を絞るタイミングを意識してクエリを作成するといい。
基本的にSQLは以下の順番で実行される。
1.from 2.where 3.group by 4.having 5.select 5.union 6.order by 7.distinct
※上記の基本があるため、下記のようにselect句で別名をつけても、where句では評価されない。
select nickname AS n
from Person
where n = 'subaru'
-> エラー発生
下記数字の順番で読み込まれるため、2のnが何を示しているのかが読み取られていない。
3 select nickname AS n
1 from Person
2 where n = 'subaru'