2012-12-07 2 views
1

나는 함께 쓰고있는 테이블에서 경쟁 업체 이름을 나열하는 데 사용되는 열을 가지고 있습니다. 지금은 이러한 입력이 이루어지는 방식에 대해 많은 통제력을 갖지 못하고 심각한 두통을 유발합니다. Google 데이터 전체에 임의의 공백과 맞춤법 오류가 있지만 아직 경쟁 업체별로 데이터를 나열해야합니다. 예를 들어 (내가 사용하지 실제 SQL), 경쟁사의 목록으로하나의 열에 유사한 값 조합하기

:

SELECT Competitor_Name, SUM(Their_Sales), 
FROM Cmdata.Competitors 
Where Their_Sales 
Between 10000 AND 100000000 
Group by Competitor_Name 

내가 각 버전에 대해 다른 항목을 얻을 것입니다 : 나는 쿼리를 실행 한 경우

Price Cutter 
PriceCutter 
PriceCuter 
Price Cuter 

프라이스 커터, 내가 분명히 피하고 싶은 것.

나는이 문제가 많이 올 것이라고 생각하지만, 나는 구글 검색을했고 건조했다. 나는 약간의 말로 분명히 말하기 힘들다는 것을 인정할 것이다. 어쩌면 그렇게해서 나는 아무 것도 가지 않았다. 어느 쪽이든 이미 이것에 대한 기본 지식이 있어야합니다 ...

(PS- 예, 우리는 드롭 다운 메뉴로 이동 중이지만 시간이 좀 걸릴 것입니다.)

+0

입니다 cleanedName 대신 COMPETITOR_NAME에 의해 다음

alter table Competitors add column cleanedName (varchar(100)); update Competitors set cleanedName = Replace(Upper(Competitor_Name), ' ', '') 

그룹 . 어떻게하면 RBDMS를 사용 하느냐에 달려 있습니다. 대답과 마찬가지로 Sql을 사용하여 [levenshtein distance formula] (http://en.wikipedia.org/wiki/Levenshtein_distance)와 같은 것을 구현하는 것보다 데이터를 정리하는 것이 더 쉽습니다. –

+0

죄송합니다, 내가 사용하고있는 것을 게시 했어야합니다. DB2 for i (IBM)입니다. SQL을 사용하여 데이터를 가져 오지만 읽기 액세스 권한 만 있습니다.데이터를 정리하기 위해 할 일은 데이터를 가져 와서 직접 수정하는 것입니다. 다른 수정 프로그램은 IS를 통과해야합니다 ... –

답변

1

Competitor 테이블을 추가해야합니다.이 테이블에는 각 경쟁 업체의 표준 이름이 있습니다.

그런 다음 다른 테이블에서 외래 키 참조를 사용하십시오.

직면 한 문제는 데이터 정리 및 데이터 모델링 문제입니다. 특히 해결하기는 어렵지 않지만 상당한 양의 작업이 필요합니다. 현재 모든 철자법의 목록을 가져 와서 표준화 할 수 있습니다. 아마도 Excel 스프레드 시트에서 시작할 수 있습니다.

이렇게하면 조회 테이블을 만들고 값을 변경하여 값을 변경할 수 있습니다.

그러나 중기에는 Competitor 테이블을 만들고 응용 프로그램에 필요한 방식으로 데이터를 모델링해야합니다.

+0

본질적으로 모든 경쟁 업체 (고유 이름)의 목록을 만들고 두 번째 테이블에서 철자 오류를 연결하기 위해 외래 키를 설정해야합니까? –

+0

아니요, 아니요. 적절한 철자와 숫자 기본 키가있는 테이블을 설정하십시오. 기본 키를 사용중인 테이블에 놓으십시오 (또는 테이블의 구조를 변경할 수없는 경우 적절한 이름). 문제는 매핑을 만드는 것입니다. 매핑에 맞춤법 오류가 필요합니다. –

+0

실제로 테이블에 대한 읽기 액세스 권한 만 있습니다. 비록 내가 짐을 덜어 내고 자신이 말하는 것을 시도 할 수 있다고 생각하지만. –

1

이것은 일반적으로 매우 어려운 문제입니다. 데이터베이스에서 지원하는 경우 Competitor_Name 대신 SOUNDEX(Competitor_Name)으로 그룹화 할 수 있습니다.

실제로 Competitor_Name 열은 맨손으로 텍스트 필드 대신 Competitors 테이블에 외래 키 여야합니다.

수정해야 할 사항이 있으면 테이블을 업데이트해야 이후에 이런 종류의 후프 점프를 수행 할 필요가 없습니다.

+0

나는이 기술을 좋아한다. (테크놀로지가 멋지 기 때문에)하지만 불행히도 충분히 정확하지는 않다. 그것들은 똑같이 들리기 때문에 서로 다른 사람들을 분명히 결합합니다. 그래도 큰 정리 노력의 일환으로 유용 할 수도 있습니다, 감사합니다. –

1

* (I 구문에 조금 헷갈리는 해요,하지만이 가까운)

당신이 찾고있는 용어는 * 퍼지 매칭
+0

아, 그러니 적어도 내가 원하지 않는 공간을 타야합니다. 알았습니다. 적어도 올바른 방향으로 나아가는 단계입니다. 좋은 첫 걸음, 너라면. –

+0

나는 이것을 '-'를 ''로 바꿀 수도 있다고 가정하고있다. (그래, 나도 알아, 나는 그것을 시도 할 것이다 ... 나는 때때로 게으르다.) –

관련 문제