在SQL Server的单个列中计算3个值

在SQL Server的单个列中计算3个值,sql,sql-server,count,aggregate-functions,Sql,Sql Server,Count,Aggregate Functions,我有一列值是从0,1,2看下面 0 = no, 1 = yes and 2 is waiting 我只想显示yes no和waiting whereadminid=1468 IsVerified AdminId 0 1468 0 1475 1 1468 1 1468 1 1468 1

我有一列值是从0,1,2看下面

0 = no, 1 = yes and 2 is waiting
我只想显示yes no和waiting where
adminid=1468

 IsVerified        AdminId
    0               1468
    0               1475  
    1               1468 
    1               1468
    1               1468 
    1               1468 
    1               1475
    2               1468
    2               1466
No    Yes    Waiting   AdminId
1      4       1        1468
我想将其显示为where
adminid=1468

 IsVerified        AdminId
    0               1468
    0               1475  
    1               1468 
    1               1468
    1               1468 
    1               1468 
    1               1475
    2               1468
    2               1466
No    Yes    Waiting   AdminId
1      4       1        1468
到目前为止,我已经使用了

SELECT     
    COUNT(s.IsVerified) AS [Yes]
    ,COUNT(s.IsVerified) AS [No]
    ,COUNT(s.IsVerified) AS [Waiting]
    ,g.AdminId
FROM    
    tbl_Squad s, tbl_Match m, tbl_Group g
WHERE   
    m.GroupId = g.GroupId          
    --AND g.AdminId=@AdminId
    AND g.AdminId=1468          
GROUP BY         
    s.IsVerified

但是它给出了三行,而我只想要一行,我错了

select sum(case when s.isverified = 0 then 1 else 0 end) no
, sum(case when s.isverified = 1 then 1 else 0 end) yes
, sum(case when s.isverified = 2 then 1 else 0 end) waiting

from tbl_squad s join tbl_group g on s.groupid = g.groupid

where g.adminid = 1468

像这样的方法应该会奏效:

select sum(case when s.isverified = 0 then 1 else 0 end) no
, sum(case when s.isverified = 1 then 1 else 0 end) yes
, sum(case when s.isverified = 2 then 1 else 0 end) waiting

from tbl_squad s join tbl_group g on s.groupid = g.groupid

where g.adminid = 1468
-旧式逗号分隔的表格列表样式已随ANSI-92 SQL标准(20多年前)而终止-旧式逗号分隔的表格列表样式已随ANSI-92 SQL标准(20多年前)而终止