SQL-Abfrage: Mit der Schlüsselwortkombination „SELECT DISTINCT“

In SQL ist es oft notwendig, Daten aus großen Datenbanken abzurufen. Allerdings können in einer Tabelle viele gleiche Einträge vorkommen. Wenn du nur einzigartige (also nicht doppelte) Werte sehen möchtest, kannst du den Befehl „SELECT DISTINCT“ verwenden.

In diesem Artikel erkläre ich dir leicht verständlich, was „SELECT DISTINCT“ tut, wie du es einsetzen kannst und zeige dir anhand von Beispielen, wie es in einer typischen Datenbank-Tabelle angewendet wird. Wir nutzen unsere Datenbank „datenbank“ und die Tabelle „personen“ in den Beispielen.


Was macht „SELECT DISTINCT“?

Der Befehl „SELECT DISTINCT“ wird verwendet, um doppelte Einträge in einer Tabelle zu vermeiden. Das bedeutet:

  • Statt alle Werte zu zeigen, werden nur einzigartige Werte angezeigt.
  • Es funktioniert mit einer oder mehreren Spalten.

Mit „SELECT DISTINCT“ kannst du beispielsweise herausfinden, welche unterschiedlichen Städte in der Spalte „Wohnort“ vorkommen, oder welche einzigartigen Namen in der Tabelle gespeichert sind.


Aufbau einer „SELECT DISTINCT“-Anweisung

Ein einfacher „SELECT DISTINCT“-Befehl sieht so aus:

SELECT DISTINCT spaltenname
FROM tabellenname;
  • SELECT DISTINCT: Wählt nur einzigartige Werte aus einer oder mehreren Spalten.
  • spaltenname: Die Spalten, aus denen du die Werte sehen möchtest.
  • FROM: Gibt an, aus welcher Tabelle die Werte kommen.

Beispiele für „SELECT DISTINCT“-Abfragen

1. Alle einzigartigen Wohnorte anzeigen

Angenommen, die Tabelle „personen“ hat eine Spalte „wohnort“, und du möchtest wissen, welche verschiedenen Städte in der Tabelle gespeichert sind:

SELECT DISTINCT wohnort
FROM personen;

Erklärung: Statt alle Wohnorte (auch doppelte) zu zeigen, bekommst du nur die Städte einmal angezeigt.


2. Mehrere Spalten kombinieren

Manchmal möchtest du einzigartige Kombinationen aus mehreren Spalten sehen. Zum Beispiel eine Liste aller einzigartigen Vor- und Nachnamen:

SELECT DISTINCT vorname, nachname
FROM personen;

Erklärung: Diese Abfrage zeigt dir jede Kombination von Vor- und Nachnamen, aber ohne doppelte Einträge.


3. Mit Filtern kombinieren

Du kannst „SELECT DISTINCT“ mit einer Bedingung versehen, um die Abfrage noch genauer zu machen. Zum Beispiel möchtest du wissen, welche Städte Personen zeigen, die nach dem Jahr 2000 geboren wurden:

SELECT DISTINCT wohnort
FROM personen
WHERE geburtsdatum > '2000-01-01';

Erklärung: Es werden nur Städte angezeigt, die zu Personen gehören, deren Geburtsdatum nach dem Jahr 2000 liegt.


4. Anzahl einzigartiger Werte zählen

Wenn du wissen möchtest, wie viele verschiedene Einträge existieren, kannst du „SELECT DISTINCT“ mit der Funktion „COUNT“ kombinieren:

SELECT COUNT(DISTINCT wohnort) AS anzahl_wohnorte
FROM personen;

Erklärung: Hier erhältst du die Anzahl der unterschiedlichen Städte in der „personen“-Tabelle.


Ein Beispiel aus der Praxis

Stellen wir uns vor, die Tabelle „personen“ enthält die folgenden Daten:

IDVornameNachnameGeburtsdatumWohnort
1AnnaMüller1990-05-14Berlin
2MaxSchmidt1985-06-23Hamburg
3LisaMeier2001-12-08München
4TomBecker1995-07-30Berlin
5SarahFischer1999-11-15Berlin

Beispiel: Nur die einzigartigen Wohnorte anzeigen

SELECT DISTINCT wohnort
FROM personen;

Ergebnis:

Wohnort
Berlin
Hamburg
München

Beispiel: Einzigartige Kombinationen von Vor- und Nachnamen

SELECT DISTINCT vorname, nachname
FROM personen;

Ergebnis:

VornameNachname
AnnaMüller
MaxSchmidt
LisaMeier
TomBecker
SarahFischer

Beispiel: Nur einzigartige Städte aus der Tabelle (gefiltert nach Geburtsdatum > 1990)

SELECT DISTINCT wohnort
FROM personen
WHERE geburtsdatum > '1990-01-01';

Ergebnis:

Wohnort
München
Berlin

Unterschied von „SELECT DISTINCT“ auf anderen Plattformen

Der Befehl „SELECT DISTINCT“ bleibt auf fast allen Plattformen gleich. Damit du einen Überblick hast, hier eine Tabelle über die Plattformen, die „SELECT DISTINCT“ unterstützen:

PlattformSQL-BefehlBesondere Hinweise
MySQLSELECT DISTINCTUnterstützt alle typischen Funktionen
PostgreSQLSELECT DISTINCTKeine Unterschiede
Microsoft SQL ServerSELECT DISTINCTIdentische Funktionalität
Oracle DatabaseSELECT DISTINCTFunktioniert identisch
SQLiteSELECT DISTINCTFunktioniert wie in anderen Plattformen

Erklärung: Der Befehl funktioniert auf allen Datenbankmanagement-Systemen genauso und hat keine Einschränkungen.


Fazit

„SELECT DISTINCT“ ist ein mächtiges Werkzeug, wenn du Daten ohne doppelte Einträge sehen möchtest. Es hilft insbesondere, um klare und saubere Datensätze zu erhalten, die nur die einzigartigen Informationen enthalten.

Mit „SELECT DISTINCT“ kannst du:

  1. Doppelte Werte aus einer Liste entfernen,
  2. Einfache Statistiken erstellen (z. B. die Anzahl der unterschiedlichen Werte),
  3. In Kombination mit Bedingungsabfragen ausgewählte Werte filtern.