Partendo dal presupposto (confermato nei commenti) che gli unici tre stati siano yes
, no
e ney
, la cosa più semplice potrebbe essere semplicemente count
condizionale case
dichiarazioni:
SELECT name,
COUNT(CASE status WHEN 'yes' THEN 1 ELSE NULL END) AS yes,
COUNT(CASE status WHEN 'no' THEN 1 ELSE NULL END) AS no,
COUNT(CASE status WHEN 'ney' THEN 1 ELSE NULL END) AS ney,
COUNT(*) AS total
FROM mytable
GROUP BY name