みなさんこんにちは、現役エンジニアのサメハックです
未経験からWebエンジニアに転職し、
現在正社員として5年働いたのちフリーランスとして独立しました。
SQLの解説シリーズです。
今回はクロス集計について学んでいきましょう!
駆け出しエンジニアや未経験の方、
また新入社員を指導する先輩社員にとっても
わかりやすいように解説していきます!
この記事を読むと・・・
- クロス集計が実行できる
※本記事はPostgreSQLを想定して執筆しておりますが、他のDBでもある程度動作します
クロス集計をしよう!
クロス集計とは
クロス集計は、異なる要素を組み合わせてデータを整理する方法です。
例えばグループにおける男女数を集計したいときに
縦にグループ番号、横に男性・女性・合計というカラムを設定します。
このように集計することで、
グループ・性別という異なる要素を組み合わせたデータが取得できます。
クロス集計をしてみよう!
- 横列:COUNTやSUMなどの集計関数
- 縦列:GROUP BY
クロス集計をするにはこの2つの処理を実行する必要があります。
例えばこのようなユーザテーブルから
各グループにおける男女数を集計したいときには以下のSQLを実行します。
SELECT
my_table.group_id AS グループ,
COUNT(*) FILTER(WHERE my_table.gender = 'male') AS 男性,
COUNT(*) FILTER(WHERE my_table.gender = 'female') AS 女性,
COUNT(*) AS 合計
FROM my_table
GROUP BY my_table.group_id;
正しく集計することができたよ!
FILTER関数について復習したい方はこちらを参考にしてください。
【SQL】FILTER句を使って集計しよう!【PostgreSQL】
GROUP BYについて復習したい方はこちらを参考にしてください。
404 NOT FOUND – サメハック
Infomation for Engineer🦈
まとめ
- クロス集計は、異なる要素を組み合わせてデータを整理する方法です。
- 横列:COUNTやSUMなどの集計関数
- 縦列:GROUP BY
満足いただけたら、1クリックなのでSNSフォローしてもらえると嬉しいです🦈