比如有个表T1a          b            c3          2            春
4          3            夏
0          9            春
7          4            冬
0          3            秋
1          0            春select count(a),count(b) from T1 group by c==============================我想求出的是a不等与0的个数,和b不等于0的个数,请问这样要什么实现。

解决方案 »

  1.   

    select sum(case when a<>0 then 1 else 0 end),sum(case when b<>0 then 1 else 0 end) from T1 group by c
      

  2.   

    select sum(case a when 0 then 0 else 1 end),
     sum(case b when 0 then 0 else 1 end),
     c
    from T1
     group by c
      

  3.   

    Select 
    SUM(Case When a != 0 Then 1 Else 0 End) As Counta,
    SUM(Case When b != 0 Then 1 Else 0 End) As Countb
    From T1
      

  4.   

    Create Table T1
    (a Int,
     b Int,
     c Nvarchar(10))
    Insert T1 Select 3,          2,            N'春'
    Union All Select 4,          3,            N'夏'
    Union All Select 0,          9,            N'春'
    Union All Select 7,          4,            N'冬'
    Union All Select 0,          3,            N'秋'
    Union All Select 1,          0,            N'春'
    GO
    Select 
    SUM(Case When a != 0 Then 1 Else 0 End) As Counta,
    SUM(Case When b != 0 Then 1 Else 0 End) As Countb
    From T1
    GO
    Drop Table T1
    --Result
    /*
    Counta Countb
    4 5
    */