MySQLのSUM関数で条件付きの集計をする
下記のような[動物テーブル]から、
動物名 | 性別 | 数 |
---|---|---|
いぬ | オス | 1 |
いぬ | メス | 2 |
いぬ | メス | 2 |
ねこ | オス | 1 |
ねこ | オス | 3 |
ねこ | メス | 5 |
下記のような結果を出したいときのSQL文。
動物名 | オスの数 | メスの数 |
---|---|---|
いぬ | 1 | 4 |
ねこ | 4 | 5 |
SELECT 動物名, SUM(CASE WHEN 性別 = オス THEN 数 ELSE 0 END) AS オスの数, SUM(CASE WHEN 性別 = メス THEN 数 ELSE 0 END) AS メスの数 FROM 動物テーブル GROUP BY 動物名 ;