組織メンバーの出身県毎の人数を性別ごとに算出したいと考えています。
以下2つのテーブルを結合して
▼ken(出身県)
|id|name|
|1|北海道 |
|2|青森 |
|3|岩手 |
|4|秋田 |
|5|宮城 |
|6|山形 |
|7|福島 |
▼member(人)
|id|name|ken_id|sex
|1|田中|1|男
|2|太田|2|女
|3|野村|7|男
|4|加藤|1|男
|5|伊藤|3|女
|6|中井|3|男
|7|桜井|3|男
|8|木村|1|女
|9|香取|4|男
|10|青田|3|男
このようにデータがとりたいのですが、
★理想
|ken_id|ken_name|cnt
|1|北海道|2
|2|青森 |0
|3|岩手 |3
|4|秋田 |1
|5|宮城 |0
|6|山形 |0
|7|福島 |1
こう出てしまいます。
★現状
|ken_id|ken_name|cnt
|1|北海道 |2
|3|岩手 |3
|4|秋田 |1
|7|福島 |1
SQL
1SELECT A.ken_id,A.ken_name,COUNT(B.ken_id) AS cnt FROM ken AS A LEFT JOIN member AS B ON A.ken_id=B.ken_id WHERE sex = "男" GROUP by A.ken_id order by A.ken_id
whereで「男」と指定しているので、男の出身がいない青森、宮城、山形がはねられてしまうのだとおもいますが、なんとか「0」なら「0」で表示できないでしょうか。
(今回は例として小さなテーブルで説明していますが、実際はレコードの量が膨大なので、なんとかSQLで処理できると助かります)
以上です。宜しくお願い致します。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/05/31 05:22
2020/05/31 06:42
退会済みユーザー
2020/05/31 07:16