Direkt zum Inhalt

Wie man SQL MINUS verwendet

Der SQL MINUS-Operator subtrahiert eine Ergebnismenge von einer anderen. Es ist einfach zu bedienen: Setze einfach MINUS zwischen zwei Abfragen, um gemeinsame Datensätze aus der ersten Menge auszuschließen.
Aktualisierte 16. Jan. 2025  · 10 Min. Lesezeit

In SQL ist der Operator MINUS ein mächtiges Werkzeug, um eine Ergebnismenge von einer anderen zu subtrahieren. Dieser Operator ist wichtig für Szenarien, in denen wir die eindeutigen Zeilen in einem Datensatz identifizieren müssen, aber nicht in einem anderen.

In diesem Artikel werden wir uns mit dem Zweck, der Syntax und den praktischen Anwendungen des SQL MINUS Operators beschäftigen, um ein tiefes Verständnis für effektive SQL-Abfragen und Datenmanipulationen zu erlangen.

Die schnelle Antwort: Wie man SQL MINUS verwendet

Der SQL-Operator MINUS subtrahiert eine Ergebnismenge von einer anderen und gibt nur die eindeutigen Zeilen aus der ersten Menge zurück, die in der zweiten nicht vorhanden sind.

Nehmen wir an, wir haben zwei Tabellen mit Arbeitnehmern, eine aus dem Jahr 2023 und eine aus dem Jahr 2024. Wir wollen herausfinden, welche Mitarbeiter auf Employees2023 anwesend waren, aber nicht auf Employees2024 sind. Wir könnten eine SQL-Anweisung MINUS verwenden, um die Antwort zu erhalten. 

SELECT EmployeeID, Name, Department
FROM Employees2023
MINUS
SELECT EmployeeID, Name, Department
FROM Employees2024;
Employees2023:

| EmployeeID | Name    | Department |

|------------|---------|------------|

| 1          | Alice   | HR         |

| 2          | Bob     | IT         |

| 3          | Charlie | Sales      |

| 4          | David   | IT         |


Employees2024:

| EmployeeID | Name    | Department |

|------------|---------|------------|

| 2          | Bob     | IT         |

| 3          | Charlie | Sales      |

| 4          | David   | IT         |

| 5          | Eve     | Marketing  |


Expected Output:

| EmployeeID | Name  | Department |

|------------|-------|------------|

| 1          | Alice | HR         |

Was ist der SQL MINUS-Operator?

Der SQL-Operator MINUS vergleicht zwei SELECT Anweisungen und gibt Zeilen aus der ersten SELECT Anweisung zurück, die in der zweiten nicht vorhanden sind. Sie führt insbesondere eine Mengenunterschiedsoperation durch, die für verschiedene Datenanalyseaufgaben entscheidend ist. Dies ist besonders nützlich bei der Datenbereinigung, -validierung und -konsolidierung, wenn wir Diskrepanzen zwischen Datensätzen aufdecken müssen.

Syntax des SQL MINUS-Operators

Die grundlegende Syntax des MINUS Operators lautet wie folgt:

SELECT column1, column2, ...
FROM table1
MINUS
SELECT column1, column2, ...
FROM table2;

Die Komponenten der Abfrage sind:

  • SELECT-Anweisung: Die Anweisung SELECT gibt die gewünschten Spalten und die Tabelle an, aus der sie abgerufen werden sollen.
  • MINUS Betreiber: Der MINUS Operator subtrahiert die zweite Ergebnismenge von der ersten.
  • Optionale Komponenten wie die WHERE Klausel können eingefügt werden, um die Daten zu filtern.
SELECT column1, column2, ...
FROM table1
WHERE condition
MINUS
SELECT column1, column2, ...
FROM table2
WHERE condition;

Wichtige Punkte zur Erinnerung

Um den Operator MINUS richtig zu verwenden, solltest du die folgenden Punkte beachten:

  • Beide SELECT Anweisungen müssen die gleiche Anzahl von Spalten haben.
  • Die Datentypen der entsprechenden Spalten müssen identisch sein.
  • Obwohl die Spaltennamen nicht identisch sein müssen, müssen ihre Datentypen übereinstimmen.
  • MINUS entfernt doppelte Zeilen aus der endgültigen Ergebnismenge und gibt nur eindeutige Zeilen zurück.

Praktische Beispiele

Schauen wir uns jetzt ein paar praktische Beispiele an, um unser Verständnis zu festigen.

Beispiel mit einem einzigen Ausdruck

Wir verwenden die folgende Abfrage, um die einzelnen Abteilungen im Jahr 2019 zu finden, die im Jahr 2020 nicht vorhanden sind:

SELECT Department
FROM Employees2019
MINUS
SELECT Department
FROM Employees2020;

Beispiel mit ORDER BY Klausel

Wir verwenden die folgende Abfrage, um die einzelnen Mitarbeiter im Jahr 2019 zu ermitteln, sortiert nach ihren Namen:

SELECT EmployeeName
FROM Employees2019
MINUS
SELECT EmployeeName
FROM Employees2020
ORDER BY EmployeeName;

Häufige Anwendungsfälle des MINUS-Operators

Der SQL MINUS Operator ist ein vielseitiges Werkzeug, das in verschiedenen Szenarien zur Verbesserung der Datenanalyse und -verwaltung eingesetzt werden kann. Im Folgenden besprechen wir einige alltägliche Anwendungsfälle, in denen sich der MINUS Operator als besonders nützlich erweist.

Datenvalidierung in ETL-Prozessen

Stelle die Datenkonsistenz und -genauigkeit bei ETL-Prozessen (Extrahieren, Transformieren, Laden) sicher. Der MINUS Operator kann Daten validieren, indem er Quell- und Zieldatensätze vergleicht.

Schauen wir uns ein Beispiel an. Um zu überprüfen, ob alle Datensätze aus der Staging-Tabelle in die endgültige Tabelle geladen wurden, können wir die folgende Abfrage verwenden:

SELECT *
FROM StagingTable
MINUS
SELECT *
FROM FinalTable;

Identifizierung fehlender Daten zwischen zwei Datensätzen

Bei der Konsolidierung von Daten aus verschiedenen Quellen ist es wichtig, alle fehlenden Datensätze zu identifizieren, um die Vollständigkeit zu gewährleisten:

SELECT CustomerID
FROM SourceA
MINUS
SELECT CustomerID
FROM SourceB;

Beschränkungen und Alternativen

Der SQL-Operator MINUS ist zwar ein leistungsfähiges Werkzeug für den Vergleich von Datensätzen, aber er hat gewisse Einschränkungen und ist nicht immer die beste Wahl für jedes Szenario. Wenn wir diese Einschränkungen verstehen und die verfügbaren Alternativen kennen, können wir bei der Arbeit mit SQL-Abfragen bessere Entscheidungen treffen.

  1. Wird nicht von allen Datenbanken unterstützt: Der Operator MINUS wird nicht von allen SQL-Datenbankmanagementsystemen unterstützt. Während sie in Oracle verfügbar ist, wird sie in SQL Server nicht unterstützt, da dieser den EXCEPT Operator verwendet.
  2. Anforderungen an Spalten und Datentypen: Beide SELECT Anweisungen, die mit dem MINUS Operator verwendet werden, müssen die gleiche Anzahl von Spalten haben und die entsprechenden Spalten müssen kompatible Datentypen haben. Das kann bei komplexen Abfragen mit verschiedenen Datensätzen einschränkend sein.
  3. Groß- und Kleinschreibung beachten: Beim MINUS Operator wird die Groß- und Kleinschreibung beachtet. Zum Beispiel werden "Apple" und "Apfel" als unterschiedliche Werte angesehen. Wenn die Groß- und Kleinschreibung nicht berücksichtigt wird, kann dies zu unerwarteten Ergebnissen führen.
  4. Keine Sortierung: Die vom MINUS Operator zurückgegebene Ergebnismenge ist nicht sortiert. Wenn eine bestimmte Reihenfolge erforderlich ist, muss eine zusätzliche ORDER BY Klausel verwendet werden.
  5. Performance-Probleme: Der MINUS Operator kann bei großen Datensätzen langsam sein, da er einen vollständigen Vergleich zwischen den beiden Ergebnismengen durchführen muss. Das kann bei großen Anwendungen zu Leistungsengpässen führen.

Eine Alternative zum MINUS Operator ist der EXCEPT Operator, der eine ähnliche Funktion hat und von verschiedenen SQL-Datenbanken unterstützt wird.

  • MINUS: Standard in Oracle und einigen anderen Datenbanken.
  • EXCEPT: Standard in SQL Server, PostgreSQL und anderen Datenbanken.

Fazit

Das Verständnis des SQL-Operators MINUS ist entscheidend für effektive SQL-Abfragen und Datenmanipulation. Dieser Operator hilft uns, eindeutige Zeilen zwischen zwei Datensätzen zu identifizieren, was ihn für die Datenvalidierung, Bereinigung und Konsolidierung nützlich macht. Übe mit verschiedenen Datensätzen, um die Verwendung des MINUS Operators zu beherrschen und deine SQL-Kenntnisse zu verbessern.

Wenn du deine SQL-Kenntnisse wirklich verbessern willst, besuche einen DataCamp-Kurs wie Introduction to SQL. Dieser Kurs bietet eine gute Grundlage für fortgeschrittenere Themen. Wenn du das Gefühl hast, dass du die Grundlagen gut beherrschst, kannst du unseren SQL-Kurs für Fortgeschrittene ausprobieren, der tiefer in die Komplexität von SQL eintaucht, einschließlich Mengenoperationen wie MINUS.


Oluseye Jeremiah's photo
Author
Oluseye Jeremiah
LinkedIn

Technischer Redakteur, der sich auf KI, ML und Datenwissenschaft spezialisiert hat und komplexe Ideen verständlich und nachvollziehbar macht.

Häufig gestellte Fragen

Wofür wird der SQL MINUS-Operator verwendet?

Der SQL-Operator MINUS wird verwendet, um eine Ergebnismenge von einer anderen zu subtrahieren und nur die eindeutigen Zeilen aus der ersten Menge zurückzugeben, die in der zweiten nicht vorhanden sind.

Was sind die syntaktischen Voraussetzungen für die Verwendung des SQL MINUS-Operators?

Beide SELECT Anweisungen in der MINUS Operation müssen die gleiche Anzahl von Spalten haben und die Datentypen der entsprechenden Spalten müssen gleich sein.

Kann der SQL MINUS-Operator in allen SQL-Datenbanken verwendet werden?

Nein, der Operator MINUS wird nicht von allen SQL-Datenbanken unterstützt. Zum Beispiel wird sie in MySQL nicht unterstützt, ist aber in Oracle verfügbar.

Was sind häufige Anwendungsfälle für den SQL MINUS-Operator?

Häufige Anwendungsfälle sind die Datenvalidierung in ETL-Prozessen, die Identifizierung fehlender Daten zwischen zwei Datensätzen und die Bereinigung und Konsolidierung von Daten aus verschiedenen Quellen.

Was ist der Unterschied zwischen den SQL-Operatoren MINUS und EXCEPT?

Der MINUS Operator wird hauptsächlich in Oracle und einigen anderen Datenbanken verwendet, während der EXCEPT Operator eine ähnliche Funktion hat und in SQL Server, PostgreSQL und anderen Datenbanken verwendet wird. Beide Operatoren geben eindeutige Zeilen aus der ersten SELECT Anweisung zurück, die in der zweiten nicht vorhanden sind.

Wie unterscheidet sich der SQL MINUS-Operator von einem Anti-Join?

Der MINUS Operator in SQL wird verwendet, um alle Zeilen der ersten Abfrage zurückzugeben, die in der zweiten Abfrage nicht vorhanden sind. Es ist eine Mengenoperation, die die Ergebnisse von zwei Abfragen vergleicht und die Differenz zurückgibt. Ein Anti-Join hingegen ist eine Art von Join, der Zeilen aus der ersten Tabelle zurückgibt, wenn es in der zweiten Tabelle keine passenden Zeilen gibt. Dies kann mit einer LEFT JOIN kombiniert mit einer WHERE Klausel umgesetzt werden, um Zeilen herauszufiltern, die die Join-Bedingung nicht erfüllen.

Themen

SQL lernen mit DataCamp

Zertifizierung verfügbar

Kurs

Einführung in SQL

2 hr
784.9K
Lerne in nur zwei Stunden, wie man relationale Datenbanken mit SQL erstellt und abfragt.
Siehe DetailsRight Arrow
Kurs starten
Mehr anzeigenRight Arrow