【问题标题】:How to find FULL DUPLICATES rows ORACLE?ORACLE 如何查找完全重复的行?
【发布时间】:2023-01-12 17:44:43
【问题描述】:

如何找到完整的重复字符串?不是单个值,字符串。 甲骨文...

SELECT 1col, 2col, 3col, COUNT(*)
FROM tab
GROUP BY 1col, 2col, 3col
HAVING COUNT(*) > 1

但是这个解决方案很原始而且不优雅

【问题讨论】:

  • 这就是它完成的方式。
  • 如果有很多列?
  • 或者。 minimal reproducible example 会让你的问题更清楚。
  • “不是单一值,字符串”是什么意思?只要是 1NF 关系,SQL 表每行每列只有一个值。

标签: sql oracle duplicates


【解决方案1】:

可能运行得更快的替代方法是使用字符串连接:

SELECT 1col || 2col || 3col AS string
FROM tab
GROUP BY 1col || 2col || 3col
HAVING COUNT(*) > 1;

【讨论】:

  • 请注意,'AB' || 'C' = 'A' || 'BC'。相同的价值观?
  • 是的,可以通过在串联中添加分隔符来防止。
  • @jarlh 我知道......我认为这就是问题所在,OP 将所有 3 列视为一个字符串。如果不是,那么我的回答无效,目前的方法可能是最好的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-21
  • 2013-05-31
  • 2010-09-08
  • 1970-01-01
  • 2018-06-29
  • 1970-01-01
相关资源
最近更新 更多