2010-09-08 3 views
0

У меня есть таблица в Oracle, и я хочу, чтобы выбрать все дублированные значения, я имею в виду: я могу обнаружить, что регистр дублируется, поскольку некоторый столбец содержит то же значение:обнаружение дублированных реестров в Oracle

ColumnA ColumnB 
1  A 
2  A 
3  A 
4  B 

Я хочу получить что-то вроде:

1 A 
1 A 
1 A 

Большое спасибо.

+0

Каковы 1s в ожидаемом результате? –

ответ

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.

Смежные вопросы