Data Retrieval Language
Group By / Aggregation Functions / Having
Alle GROUP BY Spalten sollten in der SELECT-Clause aufgeführt werden, sonst wird das Ergebnis intransparent:
Ein GROUP BY ohne Aggregations-Funktion Spalten entspricht einem DISTINCT
SELECT angebot-id, filial-id
FROM verkaeufe
GROUP BY angebot-id
entspricht
SELECT DISTINCT angebot-id, filial-id
FROM verkaeufe
geht:
SELECT angebot-id, sum(umsatz) FROM tab_verkaeufe GROUP BY angebot-id ;
geht:
SELECT sum(umsatz) FROM tab_verkaeufe ;
geht:
SELECT angebot-id, sum(umsatz) FROM tab_verkaeufe GROUP BY angebot-id HAVING sum(umsatz) > 100 ;
geht nicht:
weil:
geht nicht:
weil:
SELECT angebot-id, sum(umsatz) FROM tab_verkaeufe ;
GROUP BY fehlt
SELECT angebot-id, sum(umsatz) FROM tab_verkaeufe WHERE sum(umsatz) < 100 GROUP BY angebot-id;
in WHERE Bedingung darf keine Aggregat-Funktion stehen