下面的代码生成大约300行,但只有一小部分在“Unit = 3”列中有任何值。其余的值具有空值,因此存在列“ekod”中的许多重复值。
有没有人知道如何在“unit = 3”列中删除空值的所有行?
祝你好运!
结果:
ekod unit=3
0004 NULL
0114 15
0114 NULL
0114 NULL
0120 NULL
0120 NULL
0120 46
0120 NULL
代码:
select
A.ekod
,case when A.unit='3' then count(*) end AS [Unit=3]
from [Stat_unitdata].[dbo].[XXX_YYY] A
group by a.ekod, a.unit
order by ekod
答案 0 :(得分:4)
您可以使用sum
。
select
A.ekod
,sum(case when a.unit='3' then 1 else 0 end) AS [Unit=3]
from [Stat_unitdata].[dbo].[XXX_YYY] A
group by a.ekod
order by ekod
答案 1 :(得分:2)
请注意,如果您不关心零单位的ekod
:
select a.ekod, count(*) as [Unit=3]
from [Stat_unitdata].[dbo].[XXX_YYY] a
where a.unit = '3'
group by a.ekod
order by a.ekod;
这仅返回至少有ekod
='3'的unit
个值。