Mam tabeli, gdzie każda kolumna jest pytanie i wiersze są odpowiedzi, które mogą przyjmować wartości od 1 do 4TSQL zdarzenia liczyć w wielu kolumnach
Jaki jest najbardziej efektywny sposób obliczyć wystąpień każdego odpowiedź na pytanie?
tabela Wejście
q1 q2 q3
1 3 1
2 1 4
1 2 1
Pożądany tabela wyjściowa
answer q1 q2 q3
1 2 0 2
2 1 1 0
3 0 1 0
4 0 0 1
Dotychczas przyjechałem do następujących (Q3 pytanie), ale to tylko dla jednego pytania
CREATE TABLE #t
(
answer int
)
insert into #t (answer) values (1)
insert into #t (answer) values (2)
insert into #t (answer) values (3)
insert into #t (answer) values (4)
select * into #q3 from (select q3 as q3,count(*) as occurenceq3
from [table]
group by q3) as x
select t.answer,tb.occurenceq3 as occurenceq3
from #t t left join #q3 tb on t.answer=tb.Q3
drop table #q3
drop table #t
Prawdopodobnie UNPIVOT następnie pivot. – shawnt00