test表: 
A   B   C 
1   a   y 
2   b   n 
3   c   y 
4   d   n 
=============
trymysql>select B,count(A) as cc,sum(C = 'y') as yc from test group by B

解决方案 »

  1.   

    经测试,完全正确!!
    但是,为什么必须使用SUM(),而不能使用COUNT()呢??
      

  2.   

    谁能讲解一下sum() count()里面的条件的用法?
      

  3.   

    sum是计算总数,count是计算行数.
    ----------------------------------------------------
    mysql> select B,C='y' from test group by B;
    +------+-------+
    | B    | C='y' |
    +------+-------+
    | a    | 1     |
    | b    | 0     |
    | c    | 1     |
    | d    | 0     |
    +------+-------+
    4 rows in set (0.00 sec)