SQL:排除根据某些列安排重复的行
在我的问题中,我有这些行:例如:
id1 |name1| id2 | name2| c
1 10994,Apple,22265,Banana,103
2 22265,Banana,10994,Apple,103
3 20945,Coconut,20391,Date,101
4 20391,Date,20945,Coconut,101
它们与另一列 c 一起显示ID和名称的配对组合。
考虑到ID和名称的配对,我认为第1+2和3+4是重复的。行1+2或3+4基本上显示相同的信息。
我没有运气通过分组删除重复项,因为ID1 + ID2或NAME1 + NAME2分别是不同的列。
我可以在我的SQL查询中添加一些内容以删除这些“重复项”,以便输出1+3行?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这里的一种方法将通过
c
列进行汇总,然后使用最小/最出色的技巧来分开重复项。这是一个通用解决方案,该解决方案应在任何版本的SQL:这是一个工作。
请注意,在具有
最少
和最大
功能的数据库中,可以简化以下内容:One approach here would to be aggregate by the
c
column and then use a least/greatest trick to tease apart the duplicates. Here is a general solution which should work on any version of SQL:Here is a working demo.
Note that on databases which have a
LEAST
andGREATEST
function, the above can be simplified to:您可以尝试使用不存在。您没有提供任何现有查询,而是类似的查询:
You could try using not exists. You have not provided any existing query but something like: