Mit SQL SELECT DISTINCT stellen Sie sicher, dass Sie bei Da­ten­ab­fra­gen nur ein­deu­ti­ge Da­ten­sät­ze und Zeilen in den Er­geb­nis­sen erhalten. SELECT DISTINCT entfernt Duplikate aus aus­ge­wähl­ten Da­ten­sät­zen und Zeilen und optimiert die Ge­nau­ig­keit und Über­sicht­lich­keit Ihrer Da­ten­ana­ly­se.

Was ist SQL SELECT DISTINCT?

SELECT DISTINCT ist ein SQL-Ver­ar­bei­tungs­ope­ra­tor, der in Ver­bin­dung mit dem Befehl SQL SELECT zum Einsatz kommt. Der Befehl SELECT wählt in Da­ten­ab­fra­gen eine oder mehrere Spalten und Da­ten­sät­ze aus. In Kom­bi­na­ti­on mit dem Operator DISTINCT stellen Sie sicher, dass es in Ihrem Ab­fra­ge­er­geb­nis nur ein­deu­ti­ge, un­ter­schied­li­che Zeilen gibt und doppelte Zeilen und Werte entfernt werden. Indem Sie SELECT DISTINCT mit weiteren SQL-Ope­ra­to­ren und SQL-Befehlen kom­bi­nie­ren, können Sie Ihre Abfragen nach in­di­vi­du­el­len An­for­de­run­gen anpassen.

Un­ter­schied zwischen SQL SELECT DISTINCT und SELECT UNIQUE

UNIQUE (ein­zig­ar­tig) und DISTINCT (un­ter­scheid­bar) ähneln sich in ihrer Wort­be­deu­tung zwar, erfüllen als SQL-Ope­ra­to­ren jedoch ver­schie­de­ne Funk­tio­nen. Um SQL SELECT DISTINCT richtig an­zu­wen­den, sollten Sie daher wissen, wie sich beide Ope­ra­to­ren un­ter­schei­den:

SQL SELECT DISTINCT SQL SELECT UNIQUE
Prüft ganze Da­ten­sät­ze auf doppelte Zeilen und Werte, entfernt Red­un­dan­zen und gibt in Er­geb­nis­sen nur un­ter­scheid­ba­re, ein­deu­ti­ge Er­geb­nis­se aus Eignet sich, um in aus­ge­wähl­ten Tabellen und Spalten durch Spal­ten­be­schrän­kun­gen das Eintragen von Du­pli­ka­ten und doppelten Werten zu un­ter­bin­den
Kommt für ein­deu­ti­ge, aus­sa­ge­kräf­ti­ge Er­geb­nis­se vorrangig bei Aus­wer­tung, Analyse und Vergleich von Da­ten­sät­zen zum Einsatz Kommt bei der Er­stel­lung und Be­ar­bei­tung von Tabellen zum Einsatz, um bessere Da­ten­in­te­gri­tät ohne Red­un­dan­zen zu ge­währ­leis­ten
Tipp

Sie wollen schnell in die Pro­gram­mier- und Da­ten­bank­spra­che SQL ein­stei­gen? Unsere SQL-Ein­füh­rung mit Bei­spie­len verrät Ihnen die wich­tigs­ten Funk­tio­nen und Grund­la­gen von SQL.

Die Syntax von SELECT DISTINCT erklärt

Die einfache SELECT DISTINCT-Syntax sieht wie folgt aus:

SELECT  DISTINCT  SpalteA, SpalteB, …
FROM tabelle
sql

Diese Parameter kommen zum Einsatz:

  • SELECT DISTINCT: Der Befehl SELECT in Ver­bin­dung mit dem Operator DISTINCT wählt die Spalten aus, aus denen Sie in Ihrem Ergebnis Duplikate entfernen möchten.
  • FROM: Wählt die Tabelle aus, in der Sie Spalten auf Duplikate durch­su­chen möchten.
  • WHERE: Mit der op­tio­na­len Klausel SQL WHERE können Sie durch zu­sätz­li­che Be­din­gun­gen, die Da­ten­ab­fra­ge auf relevante Werte begrenzen.

Für diese An­wen­dun­gen eignet sich SELECT DISTINCT

Die Ein­satz­mög­lich­kei­ten für Abfragen mit SQL SELECT DISTINCT sind nahezu un­be­grenzt. Sie können zum Beispiel:

  • Kunden-, Bestell-, Patienten- oder Pro­dukt­da­ten, die mehrfach in Zeilen auf­tau­chen, auf jeweils einen ein­deu­ti­gen Eintrag re­du­zie­ren
  • Anzahl der Käufe von Produkten anhand der Be­stel­lun­gen und Produkt-ID zählen und eindeutig aufzeigen
  • Ein­deu­ti­ge Patienten- oder Kun­den­da­ten abrufen
  • Alle Lie­fer­adres­sen oder Lie­fe­ran­ten in einer Region anzeigen

Prak­ti­sche Beispiele für SQL SELECT DISTINCT

Um zu ver­an­schau­li­chen, wie SQL SELECT DISTINCT funk­tio­niert, erklären wir Ihnen den Operator an zwei prak­ti­schen An­wen­dungs­bei­spie­len.

Alle Kundinnen und Kunden abrufen

Sie möchten in einer Tabelle „Be­stel­lun­gen“ alle Kundinnen und Kunden eindeutig abrufen, ohne doppelte Zeilen durch Mehr­fach­be­stel­lun­gen. Gehen Sie wie folgt vor:

SELECT  DISTINCT  Kundenname
FROM  Bestellungen
sql

Filtern von Kundinnen und Kunden aus einer be­stimm­ten Region

Mit der WHERE-Klausel können Sie die Aus­wer­tung von Kun­den­da­ten durch zu­sätz­li­che Be­din­gun­gen näher de­fi­nie­ren. Möchten Sie zum Beispiel in der Tabelle „Be­stel­lun­gen“ alle Kun­den­na­men abrufen, die aus Deutsch­land stammen, gehen Sie wie folgt vor:

SELECT  DISTINCT  Kundennamen, Land
FROM  Bestellungen
WHERE  Land  =  'Deutschland'
sql

Al­ter­na­ti­ven zu SQL SELECT DISTINCT

Obwohl es sich bei SELECT DISTINCT um einen prak­ti­schen Weg handelt, Duplikate aus Da­ten­ab­fra­gen zu entfernen, stellt DISTINCT nicht immer die beste Lösung dar. Da der Operator bei großen Da­ten­sät­zen relativ viele Res­sour­cen durch den Vergleich jeder einzelnen aus­ge­wähl­ten Spalte erfordert, bietet es sich an, Al­ter­na­ti­ven mit ähnlicher Funktion zu wählen. Dazu zählen:

  • GROUP BY: Mit der Klausel SQL GROUP BY grup­pie­ren Sie ge­wünsch­te Da­ten­sät­ze aus an­ge­ge­be­nen Spalten und prä­zi­sie­ren sie mit weiteren Funk­tio­nen und Ope­ra­to­ren. -EXISTS: Mit SQL EXISTS prüfen sie, ob spe­zi­fi­sche Werte und Da­ten­sät­ze in einer anderen Tabelle vorliegen.
  • COUNT: Indem Sie DISTINCT mit der Funktion SQL COUNT kom­bi­nie­ren, können Sie ein­deu­ti­ge Werte in Spalten zählen.
  • SELECT + FROM + WHERE: Mit einer Subquery, also einer ver­schach­tel­ten Abfrage innerhalb einer anderen Abfrage, können Sie Ihre Er­geb­nis­se besser ein­gren­zen. Hierzu wählen Sie in der Subquery mit SELECT die be­tref­fen­de Spalte aus, de­fi­nie­ren mit FROM in welcher Tabelle sich die Spalte befindet und legen mit WHERE die Be­din­gun­gen fest, die Er­geb­nis­se erfüllen sollen.
Zum Hauptmenü