KWALIFIKACJA INF3 - STYCZEŃ 2020

PYTANIE NR 17.
Dana jest tabela uczniowie, do której wpisano rekordy jak na rysunku. Co będzie wynikiem działania przedstawionego zapytania SQL?

SELECT AVG(ocena) FROM uczniowie;

Ilustracja przedstawia tabelę z danymi uczniów, która jest częścią pytania egzaminacyjnego związanego z kwalifikacją
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Funkcja AVG(ocena) zwraca jedną wartość: średnią arytmetyczną wszystkich wartości w kolumnie ocena w tabeli uczniowie. Nie zwraca listy ocen ani liczby wierszy, tylko wynik obliczenia średniej. Dla danych z rysunku średnia wynosi 3,5.

Pełne wyjaśnienie:

Zapytanie SELECT AVG(ocena) FROM uczniowie; używa funkcji agregującej AVG. Oznacza to, że baza danych:

  • pobiera wartości z kolumny ocena,
  • oblicza z nich średnią arytmetyczną,
  • zwraca jedną komórkę wyniku (jeden wiersz z jedną kolumną), a nie wiele rekordów.

Odpowiedź "Wartość 3.5" jest poprawna, ponieważ wynik AVG to liczba będąca średnią ocen z całej tabeli (dla danych widocznych na rysunku daje to 3,5).

Odpowiedź "Dane 4, 3, 4, 3" jest błędna: takie dane mogłyby zostać zwrócone przez zwykły SELECT ocena FROM uczniowie;, ale nie przez agregację AVG, która "zwija" wiele wierszy do jednej wartości.

Odpowiedź "Suma ocen równa 14" jest błędna, bo suma jest wynikiem funkcji SUM, a nie AVG. Średnia może korzystać z sumy pośrednio (suma/liczba), ale zwraca inną wartość niż sama suma.

Odpowiedź "Liczba wierszy równa 4" jest błędna: liczba rekordów to wynik funkcji COUNT. AVG nie informuje bezpośrednio o liczbie wierszy, tylko o średniej z wartości liczbowych.

Wskazówka egzaminacyjna: gdy widzisz funkcje agregujące (AVG, SUM, MIN, MAX, COUNT), spodziewaj się wyniku zbiorczego (zwykle jednej wartości na grupę), a nie wypisania wszystkich rekordów.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
AVG zwraca średnią arytmetyczną wartości z wybranej kolumny (lub wyrażenia). Jest to wynik agregacji, więc typowo dostajesz jedną wartość dla całej tabeli albo jedną wartość dla każdej grupy, gdy użyjesz GROUP BY.
Ponieważ AVG jest funkcją agregującą: łączy wiele wierszy w jeden rezultat podsumowujący. Lista rekordów pojawia się przy zwykłym SELECT kolumny, natomiast agregacje zwracają wartości zbiorcze (np. średnią, sumę, minimum).
Najczęściej używa się zapytania w formie: SELECT AVG(kolumna) FROM tabela;. Jeśli chcesz średnią dla części danych, dodaj warunek WHERE (np. dla konkretnej klasy), a jeśli średnią dla grup, zastosuj GROUP BY.
SUM zwraca sumę wartości, a AVG zwraca średnią. Średnia jest powiązana z sumą, ale nie jest tym samym: w uproszczeniu AVG = SUM podzielone przez liczbę wartości. Na egzaminie nie myl tych funkcji.
COUNT zlicza rekordy (lub niepuste wartości w kolumnie), a AVG oblicza średnią wartości liczbowych. COUNT odpowiada na pytanie "ile?", natomiast AVG na pytanie "jaka średnia?". To dwa różne typy agregacji.
W typowych silnikach SQL wartości NULL nie są liczone jako liczby do średniej, czyli AVG pomija NULL-e. W praktyce oznacza to, że brak oceny nie zaniża średniej, ale zmienia liczbę elementów użytych w obliczeniu.
GROUP BY jest potrzebne, gdy chcesz policzyć średnią osobno dla każdej grupy, np. dla każdej klasy, przedmiotu lub nauczyciela. Bez GROUP BY dostajesz jedną średnią dla wszystkich wierszy spełniających ewentualny warunek WHERE.
Stosuje się funkcję zaokrąglania dostępną w danym silniku, np. ROUND na wyniku AVG. W praktyce pisze się zapytanie w stylu: AVG w środku, a na zewnątrz zaokrąglenie. Na egzaminie sprawdź, czy wymagane jest formatowanie.
Najczęstsze pomyłki to: wybór sumy zamiast średniej, traktowanie wyniku jako listy ocen, oraz mylenie średniej z liczbą rekordów. Pomaga zapamiętanie: AVG = średnia, SUM = suma, COUNT = liczba.
Agregacja nie zwraca "pełnych rekordów", tylko wartości podsumowujące. Aby pokazać dodatkowe kolumny razem z AVG, zwykle trzeba grupować po tych kolumnach (GROUP BY). W przeciwnym razie silnik nie wie, którą wartość kolumny wyświetlić.
info

To pytanie poprawnie rozwiązuje 68% zdających egzamin. średnie

Eksperci podkreślają: "Funkcja AVG(ocena) zwraca jedną wartość: średnią arytmetyczną wszystkich wartości w kolumnie ocena w tabeli uczniowie."

Źródła:

  • MySQL 8.0 Reference Manual – Aggregate (GROUP BY) Functions – AVG(), https://dev.mysql.com/doc/refman/8.0/en/aggregate-functions.html#function_avg (dostęp: 2026-02-28)
  • PostgreSQL Documentation – Aggregate Functions – avg, https://www.postgresql.org/docs/current/functions-aggregate.html (dostęp: 2026-02-28)
  • SQLite Documentation – Core Functions – avg(X), https://www.sqlite.org/lang_corefunc.html#avg (dostęp: 2026-02-28)

Materiały:

  • Dokumentacja używanego silnika SQL (sekcja o funkcjach agregujących)
  • Ćwiczenia: zapytania z AVG, SUM, COUNT dla prostych tabel
  • Materiały o podstawach algebry relacji i agregacji

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego