Having
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s);Having ist sozusagen die
WHEREBedingung vonGROUP BY,
Beispiel: Wenn pro Gruppe (GROUP BY) eine Anzahl (SUM) bestimmt werden soll, und nach der Anzahl gefiltert werden soll, geht das nur mit HAVING, weil WHERE filtert bevor die Aggregation stattgefunden hat. Mit WHERE könnte man z.B. filtern welche Datensätze überhaupt gezählt werden sollen.
Summe pro Attribut
SELECT vorname,SUM(verkaeufe)
FROM kuchenverkaeufe
GROUP BY vorname
ORDER BY SUM(verkaeufe) DESC;Durchschnitt pro Attribut
SELECT vorname,AVG(verkaeufe)
FROM kuchenverkaeufe
GROUP BY vorname;Min und Max
SELECT vorname,MIN(verkaeufe)
FROM kuchenverkaeufe
GROUP BY vorname;SELECT vorname,MAX(verkaeufe)
FROM kuchenverkaeufe
GROUP BY vorname;Anzahl Mitglieder pro Gruppe (n<->m)
SELECT s.Sportart, COUNT(lms.M_Id)
FROM sportart s
LEFT JOIN link_mitglied_sportart lms ON s.Sport_Id = lms.Sport_ID
GROUP BY s.Sportart;