Skip to content

Aufgabe 13 - SQL Mengenoperationen (E-Sports Edition)

Switch to Zen Mode

Aufgabe 13 - SQL Mengenoperationen (E-Sports Edition)

Abschnitt betitelt „Aufgabe 13 - SQL Mengenoperationen (E-Sports Edition)“

In dieser Übung kombinieren Sie Ergebnismengen mehrerer Abfragen mit den Mengenoperatoren UNION, INTERSECT und EXCEPT - ganz ohne komplexe Joins (siehe Kapitel 5 - SQL-Grundlagen).

In dieser Übung üben Sie:

  • Verknüpfen: Ergebnismengen mit UNION und UNION ALL zusammenführen.
  • Identifizieren: Schnittmengen mit INTERSECT bestimmen.
  • Ausschließen: Datensätze mit EXCEPT herausfiltern.
  • Verstehen: die Voraussetzungen für Mengenoperationen (gleiche Spaltenanzahl und passende Datentypen) erfassen.

Ein Analyst möchte verschiedene Listen aus dem E-Sports-System kombinieren, um Trends in Regionen und Team-Aktivitäten zu erkennen, ohne dabei komplexe Joins zu verwenden.

CREATE TABLE teams (
team_id INT PRIMARY KEY,
team_name VARCHAR(50),
region VARCHAR(30),
rank INTEGER
);
CREATE TABLE matches (
match_id SERIAL PRIMARY KEY,
team_id INTEGER,
game VARCHAR(50),
kills INTEGER
);
INSERT INTO teams VALUES
(1, 'Cyber Vipers', 'Europe', 1),
(2, 'Neon Samurais', 'Asia', 5),
(3, 'Arctic Foxes', 'North America', 12),
(4, 'Desert Rats', 'Africa', 20);
INSERT INTO matches (team_id, game, kills) VALUES
(1, 'League of Legends', 25),
(1, 'Valorant', 40),
(2, 'Counter-Strike', 15),
(2, 'League of Legends', 10),
(99, 'Dota 2', 50);

Tipp: Sie können dynamisch Zeilen erzeugen, indem Sie z. B. mit SELECT 'Counter-Strike' AS game ein fiktives Spiel als einzeilige Ergebnismenge erstellen.


  1. Globale Regionen: Erstellen Sie eine Liste aller Regionen aus der Tabelle teams. Fügen Sie per Mengenoperation die fiktiven Regionen 'South America' und 'Oceania' hinzu.
  2. Einfache ID-Liste: Erstellen Sie eine Liste aller IDs, die im System vorkommen (Kombinieren Sie team_id aus teams und team_id aus matches).
  3. UNION vs. UNION ALL:
    • Führen Sie die Abfrage aus Aufgabe 2 einmal mit UNION und einmal mit UNION ALL aus.
    • Erklären Sie den Unterschied im Ergebnis (insbesondere im Hinblick auf Team ID 1 und 2).
  1. Aktive Teams: Finden Sie alle team_ids heraus, die sowohl in der Tabelle teams als auch in der Tabelle matches existieren.
  2. Top-Regionen Check: Angenommen, wir definieren “Top-Regionen” als jene, in denen Teams mit einem Rank < 10 spielen. Erstellen Sie eine Liste dieser Regionen und zeigen Sie nur jene an, die AUCH in einer fiktiven Liste von 'Europe', 'Asia' und 'Antarctica' enthalten sind.
  1. Inaktive Teams: Identifizieren Sie die team_ids der Teams, die in der Tabelle teams stehen, aber keinen Eintrag in der Tabelle matches haben.
  2. Regions-Filter: Listen Sie alle Regionen aus der Tabelle teams auf, außer jener Region, in der das Team ‘Arctic Foxes’ beheimatet ist.
  3. Daten-Leichen: Finden Sie alle team_ids, die in der Tabelle matches vorkommen, aber nicht in der offiziellen teams Tabelle geführt werden (verwaiste Datensätze).

  • Abgabe der Datei aufgabe13_mengen.sql.
  • Alle Befehle müssen fehlerfrei ausführbar sein.
  • Konsistente Nutzung von Großbuchstaben für SQL-Keywords.

  • Frage 1: Warum würde der Befehl SELECT team_name FROM teams UNION SELECT kills FROM matches fehlschlagen?
  • Frage 2: Welcher Mengenoperator entspricht logisch einer “UND”-Verknüpfung zwischen zwei Abfrageergebnissen?
  • Frage 3: Worin unterscheiden sich UNION und UNION ALL im Ergebnis und in der Performance?

HTL Villach, Schuljahr 2025-2026,
https://www.htl-villach.at