MySQL
SELECT 名字,
SUM(CASE WHEN 出席狀態 = '出席' THEN 1 ELSE 0 END) 出席次數,
SUM(CASE WHEN 出席狀態 = '請假' THEN 1 ELSE 0 END) 請假次數,
SUM(CASE WHEN 出席狀態 = '曠課' THEN 1 ELSE 0 END) 曠課次數
FROM `table` GROUP BY 名字;
我用ms-sql 的語法寫,請自行轉為mysql 的語法.
SELECT a.姓名,
b.出席次數 ,
c.請假次數 ,
d.曠課次數
from (SELECT 姓名 from tablename group by 姓名) a left join (select 姓名,count(*) 出席次數 from tablename where 出狀態='出席' group by 姓名) b on a.姓名=b.姓名
left join (select 姓名,count(*) 請假次數 from tablename where 出狀態='請假' group by 姓名) c on a.姓名=c.姓名
left join (select 姓名,count(*) 曠課次數 from tablename where 出狀態='曠課' group by 姓名) d on a.姓名=d.姓名