W tabeli pracownicy (kolumny: nazwisko, imie, pensja, wiek) chcemy obliczyć średnią pensję. Które zapytanie jest poprawne?
Źle.
AVG liczy średnią z liczb - z nazwiska (tekstu) nie ma sensu.Źle.
VAR to wariancja, a FROM nazwisko wskazuje kolumnę zamiast tabeli.Źle. Składnia jest błędna -
VAR liczy wariancję, a zapis INTO jest tu nie na miejscu.Dobrze.
AVG(pensja) liczy średnią wartość z kolumny pensja w tabeli pracownicy.Średnią wartość z kolumny liczy funkcja agregująca
AVG, której podaje się nazwę kolumny liczbowej, a po FROM - nazwę tabeli. Aby uzyskać średnią pensję, zapisuje się SELECT AVG(pensja) FROM pracownicy. Dlatego to zapytanie jest poprawne.Pozostałe zapytania są błędne.
AVG(nazwisko) stosuje funkcję średniej do kolumny tekstowej, co nie ma sensu - uśrednia się liczby, nie napisy. Dwa warianty z VAR liczą wariancję (a nie średnią) i dodatkowo mają złą składnię: FROM nazwisko podaje kolumnę zamiast tabeli, a SELECT VAR(pracownicy) INTO pensja jest niepoprawnie zbudowane. Średnią pensję zwraca SELECT AVG(pensja) FROM pracownicy, dlatego to ono jest poprawne.