Jaka jest najprostsza instrukcja SQL, która zwróci zduplikowane wartości dla danej kolumny i liczbę ich wystąpień w tabeli bazy danych Oracle?
Na przykład: Mam JOBS
tabelę z kolumną JOB_NUMBER
. Jak mogę się dowiedzieć, czy mam jakieś duplikaty JOB_NUMBER
i ile razy są one duplikowane?
sql
oracle
duplicate-data
Andrzej
źródło
źródło
Odpowiedzi:
źródło
group by
, jak w:select column_one, column_two, count(*) from tablename group by column_one, column_two having count(column_one) > 1;
itp.having count(*) > 1
: DInny sposób:
Działa dobrze (wystarczająco szybko), gdy jest włączony indeks
column_name
. To lepszy sposób na usunięcie lub aktualizację zduplikowanych wierszy.źródło
Najprostszy, jaki mogę wymyślić:
źródło
Nie musisz nawet mieć liczby w zwróconych kolumnach, jeśli nie musisz znać rzeczywistej liczby duplikatów. na przykład
źródło
Co powiesz na:
Aby odpowiedzieć na powyższy przykład, wyglądałoby to tak:
źródło
W przypadku, gdy wiele kolumn identyfikuje unikalny wiersz (np. Tabela relacji), możesz użyć następujących
Użyj identyfikatora wiersza, np. Emp_dept (empid, deptid, startdate, enddate) załóżmy, że empid i deptid są unikalne i w takim przypadku określ wiersz
a jeśli taka tabela ma klucz podstawowy, użyj klucza podstawowego zamiast rowid, np. wtedy id to pk
źródło
Robić
poda ci zduplikowane identyfikatory wierszy.
źródło
źródło
Zwykle używam funkcji Oracle Analytic ROW_NUMBER () .
Załóżmy, że chcesz sprawdzić duplikatów ty co unikatowy indeks lub klucz podstawowy zbudowany na kolumnach (
c1
,c2
,c3
). Następnie pójdziesz tą drogą, przywołującROWID
s wierszy, w których liczba wprowadzonych liniiROW_NUMBER()
wynosi>1
:źródło
Oto żądanie SQL, aby to zrobić:
źródło
Wiem, że to stary wątek, ale to może komuś pomóc.
Jeśli chcesz wydrukować inne kolumny tabeli podczas sprawdzania duplikatu, użyj poniżej:
w razie potrzeby można również dodać dodatkowe filtry w klauzuli where.
źródło
1. rozwiązanie
źródło
Możesz także spróbować czegoś takiego, aby wyświetlić listę wszystkich zduplikowanych wartości w tabeli, powiedz reqitem
źródło