关于查询表的附加图像指针

时间:2017-10-03 03:36:32

标签: sql sql-server tsql

请查看图片链接,了解我在问题中的涂鸦情况。

来自澳大利亚不同州的用户使用不同的方法来处理该应用程序。

此表包含用户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

1 个答案:

答案 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