我正在尝试根据地址和帐户名称规范化表格。问题是地址可能被截断,缩写或有错误。我为该帐户做了一个小组地址,这让我更接近,但我有成千上万的记录。
我希望将地址分组并为每组地址设置唯一的帐户名称。我将采用重复项,并使用该帐户添加他们的帐户联系人作为我的fk。
这是我到目前为止所拥有的,但它还不够近。以前有人不得不这样做。我非常感谢任何提示。
SELECT *,
--SELECT DISTINCT k.Placeholder,f.Address_1,
CASE
WHEN k.Placeholder IS NULL
THEN Clinic_Name
ELSE k.Placeholder
END AS AccountName
FROM [FL_Data].[dbo].[26K] f
LEFT JOIN
( SELECT fl.Address_1, 'Placeholder-' + CAST(MIN(fl.id) as varchar) as Placeholder
FROM [FL_Data].[dbo].[26K] fl
GROUP BY fl.Address_1
having count(*) > 1
) k
ON f.Address_1 = k.Address_1
以下是地址的一些示例:
3011 NW 63rd St
3011 NW 63rd Street
3013 Winghaven
3013 WINGHAVEN BLVD
301 Northlake Ave. Ste-101
301 Northlake Avenue Ste.101
答案 0 :(得分:0)
如前所述 - 您可以使用google maps API: https://maps.googleapis.com/maps/api/geocode/json?address=
输出将是相同的(例如"" place_id"或几何细节)。根据那个 - 你可以找到重复的。
关于访问权限 - 您可以在C#中编写一个简单的方法,该方法接收地址作为输入并将其发送到Google API。该方法可以编译为CLR函数。这样你就可以比较所有的行。 这将是一个耗时,但如果它是一个异步过程 - 它应该没问题。