W tabeli pracownicy (kolumny: nazwisko, imie, pensja, wiek) chcemy obliczyć średnią pensję. Które zapytanie jest poprawne?
A.
SELECT VAR(pracownicy) INTO pensja
Źle. Składnia jest błędna -
VAR liczy wariancję, a zapis INTO jest tu nie na miejscu.B.
SELECT AVG(nazwisko) FROM pracownicy
Źle.
AVG liczy średnią z liczb - z nazwiska (tekstu) nie ma sensu.C.
SELECT VAR(pensja) FROM nazwisko
Źle.
VAR to wariancja, a FROM nazwisko wskazuje kolumnę zamiast tabeli.D.
SELECT AVG(pensja) FROM pracownicy
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.