Tabela pracownicy ma m.in. pola plec i zarobek. Które zapytanie policzy OSOBNO średni zarobek kobiet i mężczyzn?
Źle. Warunek
HAVING jest sprzeczny.Źle.
plec = 'k' AND plec = 'm' nigdy nie jest prawdą.Dobrze.
GROUP BY plec liczy średnią dla każdej płci.Źle. Liczy JEDNĄ średnią dla wszystkich.
Aby policzyć średnią OSOBNO dla każdej płci, grupuje się dane klauzulą
GROUP BY plec - wtedy AVG(zarobek) obliczy się dla kobiet i dla mężczyzn z osobna. Dlatego poprawne jest SELECT AVG(zarobek) FROM pracownicy GROUP BY plec;.Bez
GROUP BY zapytanie policzy JEDNĄ średnią dla wszystkich (AS to tylko alias). Warunek plec = 'k' AND plec = 'm' jest SPRZECZNY (żaden rekord nie ma obu płci), więc zwróci pustkę - dotyczy to też wariantu z HAVING. Rozdzielenie po płci daje GROUP BY plec.