下記のような試験結果のテーブルがあります。
名前 結果
----------
太郎 優
花子 優
拓也 良
涼子 可
太郎 優
花子 可
拓也 可
涼子 優
そこで、個人が、優を何回、良を何回、可を何回、取ったかを調べ、
下記のような結果を得る事ができるSQL文は可能でしょうか?
名前 優 良 可
-------------------
太郎 2 , 0 , 0
花子 1 , 1 , 0
拓也 0 , 1 , 1
涼子 1 , 0 , 1
名前 優
--------
太郎 2
花子 1
拓也 0
涼子 1
上記のようなSQL文は解るので、現状は結果の数の文だけまわしているという状態ですが、
一行で済むのであれば、変更したいと思いまして質問させていただきます。
※使っているのはMySQLです
宜しくお願い致します。
SELECT 名前
, SUM(CASE 結果 WHEN '優' THEN 1 ELSE 0 END) AS 優
, SUM(CASE 結果 WHEN '良' THEN 1 ELSE 0 END) AS 良
, SUM(CASE 結果 WHEN '可' THEN 1 ELSE 0 END) AS 可
FROM 試験結果
GROUP BY 名前
カラム名の表記などは適当に合わせて下さい.
ありがとうございます。解決できました。
CASE WHEN THEN などというは始めて知りました。
SQLをちゃんと勉強せねば・・と痛感した次第です。