Die SQL-Anweisung, die verwendet wird, um nur unterschiedliche (verschiedene) Werte zurückzugeben, lautet "SELECT DISTINCT column_name FROM table_name
". Diese Anweisung ist besonders nützlich, wenn man mit großen Datenmengen arbeitet, die Duplikate enthalten können und man nur die einzigartigen Werte aus einer bestimmten Spalte oder einem Satz von Spalten anzeigen möchte.
Angenommen, Sie haben eine Tabelle namens "students" mit einer Spalte für die Studentenuniversität ('university'). Wenn Sie alle Universitäten auflisten möchten, an denen Studenten studieren, ohne Duplikate anzuzeigen, könnten Sie die folgende Abfrage verwenden:
SELECT DISTINCT university FROM students;
Diese SQL-Anweisung gibt eine Liste aller verschiedenen Universitäten zurück, die in der Tabelle 'students' gefunden wurden. Alle Duplikate werden dabei ignoriert.
Es ist wichtig zu verstehen, dass SELECT DISTINCT
alle Spalten im SELECT
-Statement zur Unterscheidung von Einträgen verwendet. Wenn Sie beispielsweise SELECT DISTINCT column1, column2 FROM table_name
verwenden, zeigt SQL jede einzigartige Kombination von Werten in 'column1' und 'column2', nicht nur die einzigartigen Werte aus jeder Spalte separat.
Seien Sie vorsichtig beim Gebrauch von SELECT DISTINCT
, besonders bei sehr großen Tabellen. Da SQL den gesamten Datensatz durchlaufen muss, um Duplikate zu entfernen, kann dies zu Leistungseinbußen führen.
Wenn Sie nur die Anzahl der verschiedenen Werte wissen möchten, anstatt die Werte selbst anzuzeigen, können Sie SELECT DISTINCT
mit COUNT
verwenden, z. B. SELECT COUNT(DISTINCT column_name) FROM table_name
.
Es kann Fälle geben, in denen Sie Dubletten finden und entfernen möchten, anstatt sie einfach zu ignorieren. In diesem Fall könnten Sie Funktionen wie ROW_NUMBER()
, RANK()
, oder DENSE_RANK()
verwenden. Aber das ist ein Thema für eine weitere Diskussion.
Zusammenfassend lässt sich sagen, dass SELECT DISTINCT
ein nützliches Werkzeug in SQL ist, um Duplikate in den Ergebnissen zu vermeiden und einen klareren Überblick über die Daten zu erhalten.