У меня есть база данных sql server 2012 с таблицей с 10 столбцами.
name test1, test2, test3, test4,....
bob yes no null yes
john no yes yes null
Я хочу получить все результаты из «тестовых» полей, поэтому я хочу, чтобы мои результаты были
yes = 4
no = 2
null = 2
Я пробовал использовать cte, sum, case when, но не могу получить результаты, которые ищу. ниже приведен пример моего sql, если кто-нибудь может сказать мне, как получить результаты, которые я ищу.
with cte as
(
SELECT
test1,
sum (case when test1 = 'yes' then 1 else 0 end) as yes,
sum (case when test1= 'no' then 1 else 0 end) as no,
sum (case when test1 is null then 1 else 0 end) as notset
from names
group by Inspection1Type)
select
sum (yes) as 'yes',
sum(no) as 'no'
sum(notset) as 'Not Set'
from cte;
он работает для первого столбца, но не для остальных, так как я ищу одно и то же значение, он жалуется на то, что мои псевдонимы одинаковы