在SQL Server的单个列中计算3个值
我有一列值是从0,1,2看下面在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 = 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 1468
1 1475
2 1468
2 1466
No Yes Waiting AdminId
1 4 1 1468
我想将其显示为whereadminid=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多年前)而终止