Sql 行值作为列,并获取计数
我有一个具有以下结构和数据的表Sql 行值作为列,并获取计数,sql,sql-server,sql-server-2008,tsql,Sql,Sql Server,Sql Server 2008,Tsql,我有一个具有以下结构和数据的表AreaTable: Username Area Counter ----------------------------- Pravin Vskp 1 anil Hyd 3 Pravin Chennai 3 Ang Vskp 1 anil Vskp 3 Immi Chennai 3 现在,我希望数据显示为: VS
AreaTable
:
Username Area Counter
-----------------------------
Pravin Vskp 1
anil Hyd 3
Pravin Chennai 3
Ang Vskp 1
anil Vskp 3
Immi Chennai 3
现在,我希望数据显示为:
VSKP HYD CHENNAI
Pravin 1 0 3
Anil 3 3 0
Ang 1 0 0
Immi 0 0 3
我试着回答这个问题
SELECT *
FROM ( SELECT username, area,counter
FROM AreaTable) AS ET
PIVOT(MIN(counter) FOR username IN (area) AS PT
你能帮我一下吗?你应该使用:
此查询的结果是
注意,如果[Area]
列中不同值的计数不同,您应该检查动态轴是如何生成的。SO中有很多答案。试试这个
select username,[VSKP],[HYD],[CHENNAI] from
(select username,area,counter from @t) as src
pivot(
min(Counter) for Area in([VSKP],[HYD],[CHENNAI])
) as pvt
select username,[VSKP],[HYD],[CHENNAI] from
(select username,area,counter from @t) as src
pivot(
min(Counter) for Area in([VSKP],[HYD],[CHENNAI])
) as pvt