GROUP BY und HAVING

Ein spezielle Einsatz von GROUP BY ist der Zusammenschluß einer kumulativen Funktion (vor allen Dingen COUNT) mit Gruppen von Spalten. Angenommen die Antiquitäten Tabelle hat die Preis-Spalte, und das jedem Datensatz ein Presi zugeordnet wurde. Angenommen es sollen die Preise des jeweils teuersten Gegenstands herausgegeben werden der von jedem Käufer gekauft wurde. Es muß SQL mitgeteilt werden, daß alle Einkäufe eines Käufers grouppiert werden müssen und der teuerste Preis extrahiert werden muß:


\begin{code}
SELECT KÄUFERID, MAX(codeIS)
FROM ANTIQUITÄTEN
GROUP BY KÄUFERID;
\end{code}

Nun wollen wir den maximalen Kaufpreis nur ehen wenn er größer als 1000 ist, dazu benutzen wir die HAVING-Klausel:


\begin{code}
SELECT KÄUFERID, MAX(codeIS)
FROM ANTIQUITÄTEN
GROUP BY KÄUFERID HAVING codeIS \textgreater{} 1000;
\end{code}