Какой самый простой оператор SQL, который будет возвращать повторяющиеся значения для данного столбца и количество их вхождений в таблицу базы данных Oracle?
Например: у меня есть JOBS
таблица с колонкой JOB_NUMBER
. Как я могу узнать, есть ли у меня дубликаты JOB_NUMBER
, и сколько раз они дублируются?
sql
oracle
duplicate-data
Андрей
источник
источник
Ответы:
источник
group by
, как в:select column_one, column_two, count(*) from tablename group by column_one, column_two having count(column_one) > 1;
и т. Д.having count(*) > 1
: DПо-другому:
Работает нормально (достаточно быстро), когда включен индекс
column_name
. И это лучший способ удалить или обновить дублирующиеся строки.источник
Самое простое, что я могу придумать:
источник
Вам не нужно даже указывать количество в возвращаемых столбцах, если вам не нужно знать фактическое количество дубликатов. например
источник
Как насчет:
Чтобы ответить на пример выше, это будет выглядеть так:
источник
В случае, когда несколько столбцов идентифицируют уникальную строку (например, таблицу отношений), вы можете использовать следующие
Используйте идентификатор строки, например, emp_dept (empid, deptid, startdate, enddate), предположите, что empid и deptid уникальны, и в этом случае идентифицируйте строку
и если такая таблица имеет первичный ключ, тогда используйте rowid вместо rowid, например, id is pk тогда
источник
дела
даст вам идентификаторы дублированных строк.
источник
источник
Я обычно использую аналитическую функцию Oracle ROW_NUMBER () .
Допустим , вы хотите , чтобы проверить дубликаты вы относительно уникальный индекс или первичный ключ , построенный на колоннах (
c1
,c2
,c3
). Затем вы пойдете по этому пути, поднимаяROWID
s строк, где количество приведенных строкROW_NUMBER()
равно>1
:источник
Вот SQL-запрос для этого:
источник
Я знаю, что это старая тема, но это может помочь кому-то.
Если вам нужно распечатать другие столбцы таблицы при проверке на наличие дубликатов, используйте ниже:
также может добавить некоторые дополнительные фильтры в предложении where, если это необходимо.
источник
1. решение
источник
Также вы можете попробовать что-то вроде этого, чтобы перечислить все повторяющиеся значения в таблице, скажем, reqitem
источник