gpt4 book ai didi

sql - 模糊列上的 TSQL 分组

转载 作者:行者123 更新时间:2023-12-04 10:56:20 28 4
gpt4 key购买 nike

我想将所有商户交易从一个表中归为一组,然后得到一个计数。问题是,商家,比方说红盒,将有一个红盒加上最后添加的商店编号(红盒4562,红盒* 1234)。我还将包括用于分组目的的类别。

Category      Merchant
restaurant bruger king 123 main st
restaurant burger king 456 abc ave
restaurant mc donalds * 45877d2d
restaurant mc 'donalds *888544d
restaurant subway 454545
travelsubway MTA
gas station mc donalds gas
travel nyc taxi
travel nyc-taxi

问题:当商家添加了地址或商店位置时,我如何对商家进行分组。我只需要对每个商家进行计数。

最佳答案

简短的回答是没有办法准确地做到这一点,尤其是仅使用纯 SQL。

您可以找到完全匹配,也可以使用 LIKE 运算符或一系列(可能非常庞大的)正则表达式找到通配符匹配,但是您找不到相似匹配您也找不到匹配的潜在拼写错误。

根据您构建的应用程序类型,我可以想到几种可能的方法来解决这个问题。

首先,规范化数据库中的商家数据。我建议反对将准确的、未处理的字符串(例如 Bruger King)存储在你的数据库。如果您遇到与一组已知商家不匹配的商家,请询问用户它是否已经与您的数据库中的某些内容匹配。当数据进入时,对其进行处理并将其与现有的已知商家相匹配。

存储相似系数。使用类似 Jaccard index 的东西可能会有些运气判断两个字符串相似的程度。也许在剥离数字之后,这可能会工作得很好。至少,它可以让您创建一个可以尝试猜测它是哪个商家的用户界面。此外,某些数据库引擎具有全文索引运算符,可以描述类似听起来 之类的内容。这些可能值得研究。

记住每个用户的商家匹配。如果用户将 bruger king 123 main st 更正为 Burger King,请存储该关系并在将来记住它,而无需提示用户。此数据还可用于帮助其他用户更正他们的数据。

但如果没有 UI 怎么办?也许您正在尝试进行一些自动化数据处理。如果没有某种人工干预,我真的看不出有什么办法可以处理这个问题,尽管上面描述的一些技术可以帮助自动化这个过程。我还会查看您的数据来源。也许有一个独特的商家 ID 可以用作 key ,或者可能存在某处所有已知商家的列表(也许信用卡公司提供此 API?)如果有大量数据需要处理,另一种选择是使用亚马逊的 Mechanical Turk 等服务使其部分自动化。 .

关于sql - 模糊列上的 TSQL 分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18769361/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com