2014-09-25 63 views
0

我有一個數據集,其中有一個名爲WebsiteData的表中存儲了名爲Website(類型VARCHAR)的列中的數千個網址。有許多對URL(存儲在單獨的行中)是相同的,除了一個以www開始,例如, www.google.com,另一個不是,例如google.com。我將如何設計一個標識這些僞重複項的SQL查詢並刪除不以www開頭的版本?使用SQL查詢去除相似但不相同的URL

+3

你應該知道這些不一定是重複的URL – Lamak 2014-09-25 15:40:31

+0

你能否詳細說明一下? – zgall1 2014-09-25 15:51:01

+1

好吧,只是因爲*通常*'www.someurl.com'指向'someurl.com',這並不意味着在所有的 – Lamak 2014-09-25 15:53:06

回答

1

我衍生2代表一個與具有www.和一個沒有網址。通過添加www將它們加入在一起。到沒有的網站。

-- SELECT first to review the records. 
select * 
from 
(select * from website where url not like 'www.%') wA 
join 
(select * from website where url like 'www.%') wB 
    on 'www.' + wa.url = wb.url 


delete wA 
from 
(select * from website where url not like 'www.%') wA 
join 
(select * from website where url like 'www.%') wB 
    on 'www.' + wa.url = wb.url 
0

使用SUBSTRING首先獲取網站部分。並與任何重複條目匹配並刪除它。

DELETE tableW 
FROM tableW W 
JOIN 
(
select W1.website 
FROM tableW W1 
inner join tableW W2 
on W1.website = SUBSTRING(W2.website,CHARINDEX('.',W2.website, 0)+1, LEN(w2.website)) 
) T 
on T.website = W.website 
相關問題