Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Znajdź zduplikowane wiersze w bazie danych

Powinno to działać w prawie każdym dialekcie SQL:

SELECT last_name, first_name FROM names
WHERE last_name IN (
    SELECT last_name FROM names GROUP BY last_name HAVING COUNT(*) > 1
)

Daje to jednak taki zestaw wyników:

Smith     Jack
Smith     Joe
Smith     Anna
Sixpack   Joe
Sixpack   Eve

Najbardziej eleganckim rozwiązaniem do wyświetlania tego w żądanym formacie IMO jest po prostu ponowne rozmieszczenie zestawu wyników w aplikacji klienckiej zamiast wykonywania wszelkiego rodzaju niejasnych sztuczek SQL; coś takiego (pseudokod):

for each row in resultset
   if row[last_name] <> previous_last_name
      print newline, print last_name
   print ' '
   print first_name


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uruchomić procedurę składowaną Oracle w Ruby?

  2. Jak przedstawić dzielenie relacyjne (podstawowe wyrażenie algebry) w kategoriach SQL?

  3. Jak DOŁĄCZYĆ do stołów, korzystając z różnych dat bez konieczności przeprowadzania procedur

  4. W Oracle SQL:Jak wstawić bieżącą datę + czas do tabeli?

  5. Jak znaleźć LEFT OUTER JOIN lub RIGHT OUTER JOIN z ORACLE JOIN (+)