Pytanie 1
Tabela oceny zawiera wiersze (uczen, ocena): ('Ala', 5), ('Ala', 3), ('Ola', 4), ('Ola', 6), ('Jan', 2). Ile wierszy zwróci zapytanie SQL?
SELECT uczen, AVG(ocena)
FROM oceny
GROUP BY uczen
HAVING AVG(ocena) >= 4;Dlaczego tak
GROUP BY tworzy trzy grupy: Ala ze średnią (5 + 3) / 2 = 4, Ola ze średnią 5 i Jan ze średnią 2. HAVING odrzuca grupy niespełniające warunku po agregacji — zostają Ala (4 ≥ 4) i Ola, czyli 2 wiersze. Odpowiedź 1 wynika z pomylenia operatora >= z >, a 5 to liczba wierszy przed grupowaniem.