WebsiteData
이라는 테이블에 Website
(VARCHAR
유형) 열에 저장된 수천 개의 URL이있는 데이터 세트가 있습니다. www
으로 시작하는 것을 제외하고는 동일한 URL 쌍 (별도의 행에 저장 됨)이 여러 개 있습니다. www.google.com
이고 다른 하나는 예를 들어 google.com
이 아닙니다. 이 의사 복제본을 식별하고 www
으로 시작하지 않는 버전을 삭제하는 SQL 쿼리는 어떻게 디자인합니까?비슷하지만 동일하지 않은 URL과 SQL 쿼리 중복 제거
0
A
답변
1
www.
이없는 URL과 2 개의 테이블을 유도했습니다. www를 추가하여 함께 가입하십시오. 없이 url에.
-- 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
URL이 중복되지 않아야한다는 것을 알고 있어야합니다. – Lamak
자세히 설명해 주시겠습니까? – zgall1
글쎄, 단지 * common *'www.someurl.com'이'someurl.com '에게 지시하기 때문에 이것이 항상 항상 그렇다는 것을 의미하지는 않는다. – Lamak