我有一个这样格式化的数据集:
ID URL
1 google.com/trees
1 Wikipedia.com
1 Wikipedia.com/trees
2 Hello.com
2 Yahoo.com
3 Wikipedia.com
3 Google.com
3 MSN.com
我想创建一个表格(一个实际的数据集,而不仅仅是输出窗口中的一个表格),格式是这样的,它基本上总结了对每个域的访问。
ID Wikipedia.com Google.com Hello.com Yahoo.com MSN.com
1 2 1 0 0 0
2 0 0 1 1 0
3 1 1 0 0 1
感谢所有帮助。感谢。
答案 0 :(得分:1)
这适用于mssql版本2008
declare @yourtable table(id int, URL varchar(20))
insert @yourtable values(1, 'google.com/trees')
insert @yourtable values(1, 'Wikipedia.com')
insert @yourtable values(1, 'Wikipedia.com/trees')
insert @yourtable values(2, 'Hello.com')
declare @shorturltable table(URL varchar(20))
insert @shorturltable values
('Wikipedia.com'),('Google.com'),('Hello.com'),('Yahoo.com'),('MSN.com')
;with t as(
SELECT 1 a, y.id, su.URL
FROM @yourtable y
JOIN @shorturltable su
ON y.URL like '%' + su.URL + '%'
)
SELECT id, [Wikipedia.com],[Google.com],[Hello.com],[Yahoo.com],[MSN.com]
FROM t
PIVOT (count(a) FOR [URL] IN ([Wikipedia.com],[Google.com],[Hello.com],[Yahoo.com],[MSN.com])) AS pvt