Мне нужно совместить подсчет значений, где он соответствует «животному типу» в моем примере кода ниже. К сожалению, у меня могут отсутствовать записи в col2 ('a', 'b'), но мне нужно подсчитать тип животного, где они находятся в 'a', 'b' или null. Мне нужно повернуть NULL
в другой столбец с этим значением счета. Я делаю сумму по всем поворотным столбцам в конце моего запроса, а те, у которых значения null в col2 не совпадают с итогами.Показать значение NULL как развернутый столбец в SQL Server
declare @testData table ( col1 varchar(10)
, col2 varchar(10)
)
insert into @testData
values ('dog','a')
insert into @testData
values ('cat','b')
insert into @testData
values ('rabbit',null)
select * from @testData
select
pvt.col1 as [Animal Type]
, pvt.a as [A]
, pvt.b as [B]
, total.records as [Total Count]
from (
select
col1
, col2
, count(*) as records
from @testData
group by
col1
, col2
) as s
pivot
(
sum(records)
for col2 in ([a], [b])
) as pvt
join (
select
col1
, count(*) as Records
from @testData
group by
col1
) as total on pvt.col1 = total.col1
Спасибо. Это потрясающе. – lnsmith