【发布时间】:2020-08-31 14:24:37
【问题描述】:
我有一个从公共数据源构建的芬兰街道地址数据库。格式为<street name> <number> [<a possible suffix of letters and dashes>],例如Aurakatu 8 或 Aurakatu 12b。在对源数据进行一些过滤以删除异常或垃圾数据之后,数据库大约有 180 万行。其中大约 195k 包含后缀。
源数据合理但不完整。我要处理的问题是:街道名称 + 号码组合存在 IRL(例如 Aurakatu 12),但数据仅包含字母后缀形式(Aurakatu 12a 和 Aurakatu 12b)。例如,所有三种形式都有效并指向 Google 地图中的离散位置。
总而言之,这就是我想要实现的目标:在地址表中找到仅存在后缀版本的每条街道名称 + 号码组合,并创建一个不带后缀的条目。
在上述示例的情况下,查询会发现对于假设的Aurakatu 12 街道名称/号码组合,仅存在后缀版本12a 和12b,并会创建普通的12版本。
在设置(或显着更新)服务器实例时很少运行数据导入,因此最大效率并不是最重要的。
street_name 和 number 是 addresses 表中的单独表列。数字本身不一定是连续的; Somestreet 24 这样的东西存在但Somestreet 25 不存在是很常见的。
【问题讨论】:
标签: sql string postgresql count sql-insert