GROUP BY faßt alle Datensätze, die in der angegebenen Feldliste die selben Werte enthalten, zu einem einzigen Datensatz zusammen. Für jeden Datensatz wird ein zusammenfassender Wert berechnet, wenn eine Funktion wie z.B. Sum oder Count in der SELECT-Anweisung verwendet wird. Wird diese Klausel genutzt, muß diese nach FROM und WHERE folgen. HAVING gibt an, welche Bedingungen eine Gruppe aus Datensätze erfüllen muß, damit sie weiterverarbeitet wird. Wird HAVING genutzt, muß sie einer GROUP BY-Klausel folgen.
Syntax:
SELECT
[ALL|DISTINCT]{*|[tabelle.]Feld1[,[Tabelle.]Feld2.[,...]]}
FROM
Tabellenausdruck
WHERE Vergleichsausdruck
[GROUP BY
[Tabelle.]Feld3[,[Tabelle.]Feld4]...]
[HAVING
Suchbedingung]
[ORDER BY
[Tabelle].Feld5[ASC|DESC]
[,[Tabelle.]Feld6 {ASC|DESC]...]