用case计算不同的id

时间:2017-11-16 15:50:16

标签: tsql

所以说我有一个带有值的列表ID,如下所示:

Name | completed | failed
foo  | 2         | 1
bar  | 1         | 0

我想计算与A OR B(至少一个)相等的值的不同ID

答案应为2,因为有2个ID具有A或B值。

如果我执行ID VALUE 1 A 1 NULL 1 B 2 NULL 3 A 我无法获取唯一ID。

还有其他解决方案吗?

2 个答案:

答案 0 :(得分:2)

您应该能够过滤值A或B,然后计算列出的不同ID,如下所示:

declare @t table (id int not null, 
                  value char(1) null);

insert into @t 
values 
(1,'A'),
(1,NULL),
(1,'B'),
(2,NULL),
(3,'A');

select 
   count(distinct id) 
from @t 
where value in ('A','B');

答案 1 :(得分:1)

select count(distinct Id)
from tbl
where value in ('A','B')