mysql> select * from student;
+-----+------+-------+-------+
| sid | name | calss | score |
+-----+------+-------+-------+
|   1 | 张三     | php班   |    57 |
|   2 | 李四     | asp班   |    59 |
|   3 | 王五     | net班   |    59 |
|   4 | 小倩   | asp班   |    58 |
|   5 | 小张    | php班   |    98 |
|   6 | 小陈    | net班   |    66 |
|   7 | 小李    | htm班   |    78 |
|   8 | 小王    | php班   |    45 |
+-----+------+-------+-------+
查询各个班不及格的学生与及格的学生

解决方案 »

  1.   

    select class,sum(if(score < 60,1,0)) as '不及格',sum(if(score >=60,1,0)) as '及格' from student group by class
      

  2.   

    试了你的  结果有点问题,
    +-------+--------+------+
    | calss | 不及格       | 及格     |
    +-------+--------+------+
    | asp班   |      2 |    0 |
    | htm班   |      0 |    1 |
    | net班   |      1 |    1 |
    | php班   |      2 |    1 |
    +-------+--------+------+
      

  3.   

    查询各个班不及格的学生与及格的学生?
    人数还是啥?
    人数的话,上面的sql木有什么问题啊,
      

  4.   

    select class,count(case when score>=60 then 1 else 0 end) ,count(case when score<60 then 1 else 0 end)
    from student
    group by class