请查看图片链接,了解我在问题中的涂鸦情况。
来自澳大利亚不同州的用户使用不同的方法来处理该应用程序。
此表包含用户ID [id]
(1,2,3,4,5,6..14000)列,approaches
列(a,b,c,d,e,f)和列states
(wa,vic ..)
现在我需要制定一个表格,其中列#1为approaches
列,其余列名称为西澳大利亚州,维多利亚州,南澳大利亚州,昆士兰州等。
方法' a'对于在不同状态下使用此方法的人来说,总共没有人维多利亚5 wa 0
同样地,其他5种方法会有不同的人使用该方法(在列中)。
(例如:接近' b' row-vic 3 wa 1 sa2 ......等)
以下是图片的链接,请查看。https://i.stack.imgur.com/DldhT.png
答案 0 :(得分:0)
你可以使用如下的PIVOT语句。
create table data (id int, [state] nvarchar(100), approaches nvarchar(10));
insert into data values
(1,'nsw','a'),
(2,'','b'),
(3,'wa','c'),
(4,'qld','d');
select
approaches,
[New South Wales]=[nsw],
[Western Australia]=[wa],
[Queensland]=[qld],
[Victoria]=[vic],
[South Australia]=[sa],
[not available]
from
(
select
id,
case
when [state] ='' then 'not available'
else [state]
end as [state],
approaches
from data
)src
pivot
(
count(id) for [state] in ([nsw],[wa],[qld],[vic],[sa],[not available])
)p
的 see working demo 强>