0 Tage Serie
sql / intermediate
Snippet

Filtern von aggregierten Ergebnissen mit der HAVING-Klausel

Während die WHERE-Klausel einzelne Datensätze vor der Aggregation filtert, filtert die HAVING-Klausel zusammengefasste Gruppen nach Ausführung der GROUP BY-Klausel. Dies ermöglicht logische Bedingungen direkt auf Aggregatfunktionen wie COUNT() oder AVG().

snippet.sql
sql
1
2
3
4
SELECT department_id, COUNT(employee_id) AS total_employees, AVG(salary) AS avg_salary
FROM employees
GROUP BY department_id
HAVING COUNT(employee_id) >= 5 AND AVG(salary) > 50000;
Erklärung
1
SELECT department_id, COUNT(employee_id) AS total_employees, AVG(salary) AS avg_salary
Ruft Gruppenbezeichner und berechnete Aggregatwerte ab.
2
FROM employees
Identifiziert die zugrundeliegende Tabelle.
3
GROUP BY department_id
Fasst Zeilen mit derselben department_id zu Zusammenfassungsgruppen zusammen.
4
HAVING COUNT(employee_id) >= 5 AND AVG(salary) > 50000;
Wendet Bedingungsfilter auf aggregierte Gruppen nach der GROUP BY-Verarbeitung an.