みなさんこんにちは、現役エンジニアのサメハックです
未経験からWebエンジニアに転職し、
現在正社員として5年働いたのちフリーランスとして独立しました。
1分で理解できるSQLの解説シリーズです。
今回はFILTER句を使って集計する方法について学んでいきましょう!
駆け出しエンジニアや未経験の方、
また新入社員を指導する先輩社員にとっても
わかりやすいように解説していきます!
この記事を読むと・・・
- FILTER句を使って集計ができる
※本記事はPostgreSQLを想定して執筆しております
FILTER句を使おう
FILTER句とは
FILTER句は、集約関数(例: COUNT、SUM)と組み合わせて使用されます。
集約関数の結果を特定の条件でフィルタリングすることで
条件に合致するレコードの件数を取得することができます。
簡単に言うと条件を満たすデータの数を数えることができるよ!
FILTER句を使用する構文
SELECT COUNT(*) FILTER (WHERE 検索条件) AS 別名
条件はWHERE句で指定するよ!
使用例
- ユーザ管理テーブルのgenderがmaleの数
- ユーザ管理テーブルのgenderがfemaleの数
上記の条件で集計するSQL文です。
SELECT
COUNT(*) FILTER(WHERE user_table.gender = 'male') AS 男性,
COUNT(*) FILTER(WHERE user_table.gender = 'female') AS 女性
FROM user_table;
実行結果
{"男性": 100, "女性":75}
【ポイント1】
文字列を指定する場合は必ずシングルクオーテーションで囲ってね!
ダブルクオーテーションはNGだよ!
文字列を指定する場合は必ずシングルクオーテーションで囲ってね!
ダブルクオーテーションはNGだよ!
【ポイント2】
syntax error at or near “FROM”
と表示される場合、2つ目のCOUNT文の文末にカンマが入っていないか確認してね!
まとめ
- FILTER句とは、条件を満たすデータの数を集計すること
満足いただけたら、1クリックなのでSNSフォローしてもらえると嬉しいです🦈