0
名前が変更されたが顧客IDが変更されていないことを検出するクエリを作成しようとしています。これを行うには、私は1より大きい任意の結果が重要である、顧客IDを数えその後 group by節を小さなバリエーションのグループにすることは可能ですか?
Group by CustID, Name
を使用しました。これまで私が持っていたクエリは次のとおりです。
Select
CustID,
NumDiffNames
from
(select
CustID,
count(CustID) NumDiffNames
from
(Select
CustID,
Name
from
(select
CustID,
concat(rtrim(ltrim(FIRSTNAME)),rtrim(ltrim(LASTNAME))) Name
FROM
[Branch]
union
select
coCustID as CustID,
concat(rtrim(ltrim(COFNAME)),rtrim(ltrim(COLNAME))) Name
FROM
[Branch]) a
group by CustID, Name) b
group by CustID) c
where NumDiffNames>1
しかし、私は多くの誤認を得ています。私は、それぞれの名前の周りの空白をトリミングすることによってそれらの多数を削除しました。別の偽陽性のセットは、データ入力およびスペルミスによって形成される。たとえば、あるケースでは、顧客名はVanessaと表記され、同じCustomer IDの場合は名前がVenessaとなります。ある場合には名前の綴りは正しく記されていますが、例えば2つの文字が別のJohn & Jhonに転記されています。
1つまたは2つの文字の違いなど、分散が大きいグループを持つことは可能ですか?
試した 'query'も投稿できますか? –
名前については、 'soundex()'を試すことができます。しかし、リレーショナルデータベースは、ファジーストリングマッチングに最適なツールではありません。 –
支援するソフトウェアがあります。それはジョー対ジョセフとキャサリン、ケイト、キャシーを扱う... –