Study-Board.de
  1. Magazin
    1. Hochschulen
    2. Häufige Fragen
  2. Forum
    1. Dashboard
    2. Unerledigte Themen
    3. Datenbanken
    4. Semantische Suche
  3. Mediathek
  4. Umfragen
  5. Studium
    1. Welches Fernstudium?
    2. Hochschulfinder
    3. Studiengänge
    4. Hochschulen
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Forum
  • Artikel
  • Seiten
  • Galerie
  • Datenbank-Einträge
  • Umfragen
  • Erweiterte Suche
  1. Study-Board.de
  2. Forum
  3. Fachforen Wirtschaftswissenschaften
  4. Wirtschaftsinformatik
Anzeige
SGD Fernstudium – WM-Vorteile 2026

GROUP BY und HAVING – wann filtere ich mit WHERE und wann erst nach der Gruppierung?

  • AnnaWInf
  • 22. August 2026 um 15:45
  • Erledigt
  • AnnaWInf
    WiInf
    Beiträge
    38
    • 22. August 2026 um 15:45
    • #1

    Moin, ich übe gerade für die Datenbank-Klausur und stolpere ständig über dieselbe Fehlermeldung.

    Ich möchte pro Abteilung die Anzahl der Mitarbeiter und will nur Abteilungen sehen, in denen mehr als fünf arbeiten. Schreibe ich die Bedingung in WHERE, meckert die Datenbank, dass eine Aggregatfunktion dort nicht erlaubt sei. Nehme ich zusätzliche Spalten in SELECT auf, kommt die Meldung, die Spalte müsse in der GROUP-BY-Klausel stehen.

    Ich bekomme es mit Ausprobieren irgendwann hin, aber ich verstehe die Regel dahinter nicht. Also:

    • Woran entscheide ich, ob eine Bedingung in WHERE oder in HAVING gehört?
    • Warum muss jede Spalte aus SELECT auch in GROUP BY stehen?
    • Und ist COUNT(*) dasselbe wie COUNT(spaltenname)? In meinen Ergebnissen kommt manchmal etwas anderes raus.

    Danke schon mal – ich glaube, mir fehlt hier ein Grundprinzip und nicht die Syntax. 🙈

  • Anzeige
    FernakademieGeprüfte Fernlehrgänge, jederzeit starten – gratis Infopaket.
    Mehr erfahren →
  • Tobi89
    WiInf · IT
    Beiträge
    37
    • 22. August 2026 um 18:20
    • #2

    Du hast völlig recht: Es ist ein Grundprinzip, und wenn du das einmal hast, beantworten sich alle drei Fragen von selbst. Das Prinzip heißt logische Verarbeitungsreihenfolge – und die ist eine andere als die Schreibreihenfolge:

    FROM/JOIN → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT

    Man schreibt SELECT zuerst, aber die Datenbank wertet es fast zuletzt aus. Damit ist alles erklärt:

    1. WHERE läuft vor der Gruppierung und filtert einzelne Zeilen. Zu diesem Zeitpunkt existiert noch keine Gruppe, also kann es auch noch kein COUNT geben – deshalb die Fehlermeldung. HAVING läuft nach der Gruppierung und filtert fertige Gruppen. Faustregel: Bedingung auf einen Einzelwert einer Zeile → WHERE. Bedingung auf ein Ergebnis wie COUNT, SUM oder AVG → HAVING.
    2. Warum jede Spalte in GROUP BY muss: Nach dem Gruppieren ist aus vielen Zeilen eine geworden. Fragst du eine Spalte ab, die innerhalb der Gruppe verschiedene Werte hat, gibt es keine sinnvolle Antwort – welchen Namen sollte die Datenbank für eine Abteilung mit acht Mitarbeitern ausgeben? Deshalb gilt: Jede Spalte in SELECT muss entweder in GROUP BY stehen oder in einer Aggregatfunktion. (MySQL/MariaDB waren hier historisch lax und haben irgendeinen Wert geliefert; mit aktivem ONLY_FULL_GROUP_BY verhalten sie sich heute wie die anderen. Verlass dich in der Klausur auf die strenge Regel.)
    3. COUNT(*) vs. COUNT(spalte): Das ist kein Zufall, sondern NULL. COUNT(*) zählt Zeilen. COUNT(spalte) zählt nur Zeilen, in denen diese Spalte nicht NULL ist. Wenn drei von zehn Mitarbeitern keine Telefonnummer haben, liefert COUNT(*) zehn und COUNT(telefon) sieben. Dazu kommt COUNT(DISTINCT spalte) für die Anzahl verschiedener Werte.

    Deine Abfrage sieht damit ungefähr so aus:

    SELECT abteilung, COUNT(*) AS anzahl FROM mitarbeiter WHERE austrittsdatum IS NULL GROUP BY abteilung HAVING COUNT(*) > 5 ORDER BY anzahl DESC

    Beachte, dass hier beides vorkommt und das völlig normal ist: WHERE wirft ausgeschiedene Mitarbeiter raus, bevor gezählt wird, HAVING wirft danach die kleinen Abteilungen raus. Ein letzter Merkposten: Der Alias anzahl darf in ORDER BY verwendet werden (das läuft nach SELECT), in WHERE und HAVING dagegen in der Regel nicht – dort musst du den Ausdruck wiederholen.

  • DanielIT
    WiInf · IT
    Beiträge
    46
    • 23. August 2026 um 08:25
    • #3

    Tobis Reihenfolge ist der Schlüssel. Ich hänge die Stolperfallen an, die einem nach der Klausur im echten Betrieb begegnen – die kommen aber auch in Aufgaben gern als Teilfrage vor.

    1. Der Klassiker: LEFT JOIN plus COUNT(*). Du willst pro Kunde die Anzahl der Bestellungen, auch für Kunden ohne Bestellung. Mit LEFT JOIN bleiben die kundenlosen Zeilen erhalten – aber COUNT(*) zählt trotzdem 1, weil die Zeile ja existiert, nur mit lauter NULL-Werten aus der rechten Tabelle. Richtig ist COUNT(bestellung.bestellID): Das zählt die NULL-Zeile nicht mit und liefert die gewünschte 0. Dieser Fehler ist in Auswertungen extrem verbreitet.

    2. NULL bildet eine eigene Gruppe. Gruppierst du nach einer Spalte, in der NULL vorkommt, entsteht eine gemeinsame Gruppe für alle NULL-Werte – obwohl NULL sonst nirgends gleich NULL ist. Praktisch, aber überraschend. Und AVG(spalte) ignoriert NULL-Zeilen komplett: Der Nenner ist dann COUNT(spalte) und nicht COUNT(*). Wenn fehlende Werte als 0 zählen sollen, musst du das mit COALESCE ausdrücklich sagen.

    3. Filtere so früh wie möglich. Inhaltlich kannst du eine Zeilenbedingung auch in HAVING unterbringen, wenn die Spalte in GROUP BY steht – sauber ist es trotzdem nicht. WHERE reduziert die Datenmenge, bevor gruppiert wird, und kann Indizes nutzen. HAVING arbeitet auf dem bereits berechneten Zwischenergebnis. Bei großen Tabellen ist das der Unterschied zwischen einer Sekunde und einer Minute.

    4. Als Ausblick, falls es im Kurs noch kommt: Wenn du Einzelzeilen und eine Kennzahl gleichzeitig brauchst („jeder Mitarbeiter mit dem Durchschnittsgehalt seiner Abteilung daneben“), ist GROUP BY das falsche Werkzeug, weil es die Zeilen zusammenfasst. Dafür gibt es Fensterfunktionen wie AVG(gehalt) OVER (PARTITION BY abteilung) – sie rechnen dieselbe Kennzahl, behalten aber alle Zeilen. Das ist ein sehr guter Punkt für eine mündliche Prüfung, weil ihn erfahrungsgemäß kaum jemand nennt.

  • KevinFernuni
    FernUni Hagen
    Beiträge
    45
    • 24. August 2026 um 07:35
    • #4

    Danke für die Verarbeitungsreihenfolge, die hat bei mir tatsächlich den Knoten gelöst. Ich hänge noch eine Sache an, die mir bei Einsendeaufgaben und Klausuren mehr geholfen hat als jede Syntaxregel: Aufgabentexte lassen sich fast wörtlich in SQL übersetzen.

    Ich habe mir dafür eine kleine Übersetzungsliste gemacht:

    • „pro Kunde“, „je Abteilung“, „für jede Filiale“ → das ist die Spalte hinter GROUP BY.
    • „Anzahl“, „Summe“, „Durchschnitt“, „höchster“ → die Aggregatfunktion im SELECT.
    • „nur Aufträge aus 2025“ → Bedingung auf einzelne Zeilen, also WHERE.
    • „nur diejenigen Kunden, die mehr als drei Aufträge haben“ → Bedingung auf die fertige Gruppe, also HAVING.
    • „absteigend“, „Top 5“ → ORDER BY … DESC und LIMIT.

    Wenn beides in einer Aufgabe steht – „Anzahl der Aufträge aus 2025 pro Kunde, aber nur Kunden mit mehr als drei Aufträgen“ –, weiß man sofort, dass das Jahr ins WHERE und die Drei ins HAVING gehört. Genau diese Kombination war bei mir in der Klausur die eigentliche Prüfungsfrage.

    Zweiter Tipp: Ich schreibe die Klauseln in der Reihenfolge FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY auf ein Schmierblatt und füge sie dann erst zur fertigen Abfrage zusammen. Klingt umständlich, verhindert aber genau den Fehler, dass man ein COUNT ins WHERE schreibt, weil man mit dem SELECT anfängt.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!

Benutzerkonto erstellen Anmelden

Letzte Beiträge

    1. Thema
    2. Antworten
    3. Letzte Antwort
    1. Virtuelle Maschine oder Container – in der Vorlesung klang das gleich, im Praktikum ist es das überhaupt nicht 2

      • AnnaWInf
      • 15. September 2026 um 17:30
      • Wirtschaftsinformatik
      • AnnaWInf
      • 16. September 2026 um 07:25
    2. Antworten
      2
      Zugriffe
      44
      2
    3. Tobi89

      16. September 2026 um 07:25
    1. Passwörter speichern: Warum hasht man sie, statt sie zu verschlüsseln – und wozu dann noch ein „Salt“? 3

      • KevinFernuni
      • 13. September 2026 um 19:05
      • Wirtschaftsinformatik
      • KevinFernuni
      • 14. September 2026 um 18:50
    2. Antworten
      3
      Zugriffe
      52
      3
    3. Tobi89

      14. September 2026 um 18:50
    1. Unit-Test, Integrationstest, Abnahmetest – wer testet eigentlich was, und was hat das Pflichtenheft damit zu tun? 3

      • Sophie99
      • 11. September 2026 um 18:15
      • Wirtschaftsinformatik
      • Sophie99
      • 12. September 2026 um 20:50
    2. Antworten
      3
      Zugriffe
      69
      3
    3. AnnaWInf

      12. September 2026 um 20:50
    1. Schnittstellen zwischen zwei Systemen – warum ist der Datenaustausch in der Praxis so aufwendig? 2

      • RobertM
      • 9. September 2026 um 16:20
      • Wirtschaftsinformatik
      • RobertM
      • 9. September 2026 um 20:55
    2. Antworten
      2
      Zugriffe
      81
      2
    3. DanielIT

      9. September 2026 um 20:55
    1. Standardsoftware kaufen oder selbst entwickeln lassen – nach welchen Kriterien entscheide ich Make-or-Buy? 2

      • TimDual
      • 4. September 2026 um 18:40
      • Wirtschaftsinformatik
      • TimDual
      • 5. September 2026 um 06:55
    2. Antworten
      2
      Zugriffe
      100
      2
    3. Tobi89

      5. September 2026 um 06:55
    1. IT-Sicherheit: Vertraulichkeit, Integrität, Verfügbarkeit – wo ordne ich Verschlüsselung, Signatur und Backup jeweils ein? 2

      • Jonas91
      • 2. September 2026 um 18:35
      • Wirtschaftsinformatik
      • Jonas91
      • 3. September 2026 um 06:45
    2. Antworten
      2
      Zugriffe
      105
      2
    3. Tobi89

      3. September 2026 um 06:45
    1. Geschäftsprozess modellieren: EPK oder BPMN – und wann nehme ich XOR, UND oder ODER? 3

      • Sophie99
      • 31. August 2026 um 16:05
      • Wirtschaftsinformatik
      • Sophie99
      • 1. September 2026 um 21:05
    2. Antworten
      3
      Zugriffe
      123
      3
    3. AnnaWInf

      1. September 2026 um 21:05
    1. Lastenheft und Pflichtenheft – wer schreibt eigentlich was, und warum trennt man das überhaupt? 2

      • AnnaWInf
      • 29. August 2026 um 16:15
      • Wirtschaftsinformatik
      • AnnaWInf
      • 30. August 2026 um 09:05
    2. Antworten
      2
      Zugriffe
      125
      2
    3. Tobi89

      30. August 2026 um 09:05
    1. Drei-Schichten-Architektur – warum trennt man Oberfläche, Logik und Datenhaltung überhaupt? 3

      • KevinFernuni
      • 26. August 2026 um 14:25
      • Wirtschaftsinformatik
      • KevinFernuni
      • 27. August 2026 um 07:05
    2. Antworten
      3
      Zugriffe
      122
      3
    3. Tobi89

      27. August 2026 um 07:05
    1. ERP-System – was macht das eigentlich konkret, und warum reicht dafür nicht eine gute Excel-Lösung? 3

      • JaninaBWL
      • 24. August 2026 um 15:40
      • Wirtschaftsinformatik
      • JaninaBWL
      • 26. August 2026 um 06:40
    2. Antworten
      3
      Zugriffe
      157
      3
    3. AnnaWInf

      26. August 2026 um 06:40
Anzeige
SGD Fernstudium – WM-Vorteile 2026: 10 % auf über 100 Kurse

Registrierung

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!

Benutzerkonto erstellen
Anzeige · Fernstudium-Anbieter
AKAD UniversityTIPPStaatlich anerkannt · berufsbegleitend · jederzeit startenHochschule FreseniusInfomaterial zu Fernstudien kostenlos anfordernSGD – Studiengemeinschaft DarmstadtTraditionsreiche Fernschule – 4 Wochen kostenlos testenILS FernschuleDeutschlands größte Fernschule – 4 Wochen gratis testenWilhelm Büchner HochschuleTechnik-Fernstudium, staatlich anerkanntFernakademieGeprüftes Fernstudium, jederzeit startenEHiP100 % digitales Studium, auch ohne Abitur
Partnerlinks – für dich kostenlos.
Anzeige · Technik & Studium
Wilhelm Büchner HochschuleTechnik-Fernstudium (Informatik, Ingenieurwesen)CyberportLaptops & Technik fürs Studium
Partnerlinks.

Beliebte Studienthemen

BWL VWL Rechnungswesen Steuerlehre Mathe & Statistik Wirtschaftsrecht Wirtschaftsinformatik Wirtschaftswissenschaften Einsendeaufgaben Fernstudium-Anbieter
Anzeige · AKAD University
AKAD University – berufsbegleitendes FernstudiumStudiengänge ansehen →
Partnerlink – für dich kostenlos.

Letzte Beiträge

  1. Virtuelle Maschine oder Container – in der Vorlesung klang das gleich, im Praktikum ist es das überhaupt nicht

    Tobi89
    16. September 2026 um 07:25
  2. Passwörter speichern: Warum hasht man sie, statt sie zu verschlüsseln – und wozu dann noch ein „Salt“?

    Tobi89
    14. September 2026 um 18:50
  3. Unit-Test, Integrationstest, Abnahmetest – wer testet eigentlich was, und was hat das Pflichtenheft damit zu tun?

    AnnaWInf
    12. September 2026 um 20:50
  4. Schnittstellen zwischen zwei Systemen – warum ist der Datenaustausch in der Praxis so aufwendig?

    DanielIT
    9. September 2026 um 20:55
  5. Standardsoftware kaufen oder selbst entwickeln lassen – nach welchen Kriterien entscheide ich Make-or-Buy?

    Tobi89
    5. September 2026 um 06:55
Anzeige · Studentenrabatt
📰 Studenten lesen billigerZeitungs- & Zeitschriften-Abos für Studierende – bis −75 %. SPIEGEL, DIE ZEIT, Handelsblatt, Wirtschaftswoche & Über 1.000 Titel.Zu den Studenten-Abos →
Partnerlink – für dich kostenlos.
Werbeplatz
Hier könnte Ihre Werbung stehen37.000+ Mitglieder · 112.000+ Beiträge · Zielgruppe BWL & Fernstudium, 95 % DeutschlandWerbung anfragen →
Mediadaten auf Anfrage

Statistiken

Themen
59.296
Beiträge
114.550
Bilder
1
Videos
0
Mitglieder
37.069
Meiste Benutzer online
17.968
Neuestes Mitglied
vuppi
  1. Impressum
    1. Datenschutzerklärung
    2. Verhaltenskodex
      1. Learn to Post
  2. Mediadaten
  3. Kontakt
  4. Presse
  1. Support

Über Study-Board.de

Study-Board.de ist eine der größten deutschen Communities rund ums Studium – mit über 37.000 Mitgliedern und mehr als 112.000 Beiträgen. Hier findest du Hilfe bei Einsendeaufgaben (SGD, ILS & Co.), verständliche Erklärungen zu BWL- und VWL-Fachbegriffen, Skripte, Klausurtipps und echte Erfahrungen zu Fernstudium-Anbietern wie IU, AKAD und Euro-FH.

Forum, Ratgeber und Linkdatenbank – Lernen, Austausch und gegenseitige Hilfe an einem Ort. Unabhängig und von Studierenden für Studierende.

Community-Software: WoltLab Suite™