2013-10-25 1 views
2

에 대한 항목과 일치하는 텍스트의 인스턴스를 수 :SQL 내가 데이터 세트는 다음과 같이 포맷 한 각 사용자

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

당신이 사이트에 잠금 또는 너무 그 동적된다 MSSQL 버전에 대한 작동? –

+0

동적이라고 생각합니다 –

+0

TSQL. 각 행은 URL 방문이있는 사용자입니다. 나는 각 도메인 (wikipedia.com/trees와 wikipedia.com/sql을 의미 함)에 대한 합계를 표로 작성해야합니다. – user2920813

답변

1

이 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 

Link to test

관련 문제