mysql查询问题,需要分类汇总

mysql数据库里面有多条数据

name class level
张三 语文 及格
张三 数学 不及格
李四 语文 不及格
李四 英语 不及格
李四 数学 及格

想要查的结果是
名字 及格数 不及格数 总课数
张三 1 1 2
李四 1 2 3

查询语句如何写?


select name,
count(distinct class, if (level="及格",true,null)) "及格数",
count(distinct class, if (level="不及格",true,null)) "不及格数",
count(distinct class) "总课数" 
from table group by name