【发布时间】:2019-02-21 23:58:35
【问题描述】:
我的文本列中的数值用分号分隔。我试图弄清楚如何获得出现在同一行中的最频繁的一对值。我在 Python Finding the most frequent occurrences of pairs in a list of lists 中找到了一个非常相似问题的解决方案,但我不知道如何使用 SQL 重写它在下面的示例中,它返回 2 和 3,因为这对在输入集中出现了 3 次:
Input rows Output
---------- -------
';1;2;3;5' | '2;3'
';2;3' | '1;2'
';3;4;5;1;2' | '1;3'
';1;5;2' | '1;5'
原始数据:
【问题讨论】:
-
请以文本格式发布您的数据,而不是图片。此外,您需要解释 940 和 10662 是如何预期的结果。
-
阅读Is storing a delimited list in a database column really that bad?,您会看到很多理由说明为什么这个问题的答案是绝对是的!你有一个损坏的数据模型,这就是为什么它很难使用。如果你想规范你的数据库,这个任务将是微不足道的。
-
您的 SQL Server 版本是多少?
-
2017 开发人员
-
@AdamStawarek 为什么
1;2、1;5和2;5不在输出中?2;3和3;2是一样的吗?
标签: sql sql-server tsql