Tabela pracownicy ma m.in. pola plec i zarobek. Które zapytanie policzy OSOBNO średni zarobek kobiet i mężczyzn?
Źle. Liczy JEDNĄ średnią dla wszystkich.
Źle.
plec = 'k' AND plec = 'm' nigdy nie jest prawdą.Źle. Warunek
HAVING jest sprzeczny.Dobrze.
GROUP BY plec liczy średnią dla każdej płci.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.