【发布时间】:2020-07-28 13:00:43
【问题描述】:
我正在寻求帮助,以查找由于输入管理不善而在属性中重复出现的字符串/数字的记录。例如,该表将类似于以下内容:
ID|stuff
1 | 23 jackson jackson st
2 | 89 jackson st
3 | 1 1 jackson st
4 | 66 jackson st
我希望返回如下所示:
ID|stuff
1 | 23 jackson jackson st
3 | 1 1 jackson st
请注意,在上面的示例中,'s' 不会导致它返回 id 2,即使它在 jackSon 和 St 中也是如此。
任何帮助将不胜感激,谢谢。
【问题讨论】:
-
你想要的匹配总是连续重复吗?
-
如果是
jackson st jackson或jackson st st呢? -
无论您考虑哪种解决方案,都会遇到各种麻烦。会有一些你没有想到的情况,特别是如果你想删除不连续的重复模式。例如,如果您想从 12 jackson 12 street 中删除 12,那么您如何处理 12 jackson st apartment 12?另一个例子 - Walla Walla 是美国华盛顿州的一个城市,是否应该显示为 Walla?
-
对oracle不太熟悉,但是如果将它们分成列,然后使用rank函数对每个空格分隔的单词(按id分区)进行排名,使得重复的单词获得相同的排名,然后使用聚合过滤 count(rank) 不等于 count(distinct rank) 的 id,最后加入这些 id。
-
是的,我知道 walla walla 会是个问题;然而,我们实际上会手动审查退货,如果它是合法的,就会离开它。这基本上是一个返回可能情况的查询,然后我们将手动查看。