Która z wbudowanych funkcji agregujących języka SQL oblicza średnią wartości we wskazanej kolumnie?
A. MIN
B. AVG
C. COUNT
D. SUM
Pytanie z egzaminu CKE, styczeń 2021 (arkusz EE.09-SG-21.01).
AVG jest funkcją agregującą SQL służącą do obliczania średniej arytmetycznej wartości w podanej kolumnie. Typowa składnia ma postać: SELECT AVG(nazwa_kolumny) FROM tabela;. Mechanizm działania polega na zsumowaniu wartości liczbowych z danej kolumny i podzieleniu tej sumy przez liczbę uwzględnionych rekordów. Funkcja działa na zbiorze wierszy, więc zwraca jedną wartość dla całej tabeli albo dla każdej grupy, jeśli zapytanie używa GROUP BY. W praktyce AVG stosuje się np. do obliczenia średniej ceny produktów, średniej oceny uczniów albo średniego wynagrodzenia. Trzeba odróżniać ją od SUM, która tylko sumuje wartości, oraz od COUNT, która liczy rekordy.
W tym pytaniu chodzi o funkcję, która wylicza średnią arytmetyczną z wartości zapisanych w kolumnie. Taką funkcją jest AVG, używana np. w zapytaniu SELECT AVG(cena) FROM produkty;. MIN zwraca najmniejszą wartość z kolumny, więc byłaby trafna przy szukaniu najniższej ceny, najwcześniejszej daty albo najmniejszej liczby punktów. SUM oblicza sumę wszystkich wartości, na przykład łączną wartość zamówień, ale nie dzieli wyniku przez liczbę rekordów. COUNT służy do zliczania rekordów lub niepustych wartości w kolumnie, więc odpowiada na pytanie ile elementów istnieje, a nie jaka jest ich średnia. Typowy błąd polega na kojarzeniu wszystkich funkcji agregujących z jednym ogólnym działaniem na wielu wierszach. W SQL każda z nich wykonuje inną operację: AVG liczy średnią, SUM sumę, MIN minimum, a COUNT liczbę wystąpień.