Podczas pracy z bazami danych często napotykasz instancje, w których musisz znaleźć zduplikowane wiersze w danej tabeli bazy danych. Znalezienie duplikatów może pozwolić na określenie stosunku identycznych do wszystkich wartości w tabeli.
Następnie możesz użyć informacji zebranych do działania, takie jak usunięcie duplikatów lub przeniesienie ich do tabeli tymczasowej itp.
W tym poście dowiemy się, jak możemy znaleźć duplikat wartości w tabeli Oracle za pomocą funkcji Oracle Aggregate lub Analitycznych.
Konfigurowanie przykładowej tabeli i danych
Skonfigurujmy przykładowe dane do celów ilustracyjnych, aby najlepiej zrozumieć, jak korzystać z funkcji Oracle, aby znaleźć zduplikowane wartości.
Jeśli masz istniejącą tabelę, której chcesz użyć, możesz pominąć tę sekcję. W przeciwnym razie uruchom poniższą instrukcję, aby utworzyć przykładową tabelę:
Utwórz Zamówienia Tabeli_informationNastępnie dodaj przykładowe dane o duplikatach, jak pokazano:
Wstaw do zamówień_information (id, klient, zamówienie_date, produkt_id, ilość, cena)Po przygotowaniu tabeli i przykładowych danych możemy dowiedzieć się, jak znaleźć zduplikowane wiersze.
Oracle Znajdź zduplikowane wiersze - funkcja analityczna
W Oracle możemy użyć funkcji Count () w połączeniu z przekroczeniem i partycją według klauzuli, aby określić liczbę zduplikowanych rekordów w danej tabeli.
Weźmy przykładową instrukcję pokazaną poniżej.
Wybierz zamówienia.*, Count (*) Over (partycja według klienta, order_date) numer_of_occurencePowyższe zapytanie powinno zwrócić wiersz, a liczbę razy występuje w tabeli, jak pokazano:
Aby uzyskać tylko rekordy, które pojawiają się więcej niż raz, możemy użyć klauzuli gdzie:
z item_count AS (Wybierz zamówienia.*, Count (*) Over (partycja według klienta, order_date) numer_of_occurenceWyjście:
Oracle Znajdź zduplikowane wartości - funkcja agregująca
Inną metodą, której możemy użyć do znalezienia zduplikowanych rekordów w tabeli, jest grupa według klauzuli. Następnie możemy określić liczbę przypadków danego rekordu w każdej grupie za pomocą funkcji Count (). Jeśli rząd pojawia się więcej niż raz, jest to duplikat.
Przykładem jest jak pokazano:
wybierać *Powstałe informacje są takie, jak pokazano:
Jak widzimy, zapytanie pozwala nam uzyskać duplikat wierszy z tabeli docelowej.
Wniosek
W tym samouczku odkryłeś dwie główne metody określania zduplikowanych wierszy z danej bazy danych.