检测Oracle中的重复注册表

时间:2010-09-08 16:48:52

标签: oracle duplicates

我在Oracle中有一个表,我想选择所有重复的值,我的意思是:我可以检测到寄存器是重复的,因为某些列包含相同的值:

ColumnA  ColumnB
1        A
2        A
3        A
4        B

我希望得到类似的内容:

1 A
1 A
1 A

非常感谢。

1 个答案:

答案 0 :(得分:2)

假设您希望原始表中的所有行在一列(ColumnB)中有一些重复项,您可以使用以下查询:

SELECT ColumnA, ColumnB FROM Table
WHERE ColumnB IN (
    SELECT ColumnB FROM Table
    GROUP BY ColumnB HAVING COUNT(*) > 1 
)

对于原始数据,将返回:

ColumnA ColumnB
1       A
2       A
3       A

如果足以获得表中多次使用的所有值,则可以使用更简单的查询:

SELECT ColumnB FROM Table
GROUP BY ColumnB HAVING COUNT(*) > 1 

这将只返回一行A