KWALIFIKACJA INF3 - CZERWIEC 2023 (test 2)

PYTANIE NR 17.
SELECT COUNT(cena) FROM uslugi; 
Przedstawione zapytanie wybierze
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
COUNT(cena) jest funkcją agregującą, więc zwraca jedną liczbę: ile wartości znajduje się w kolumnie "cena" w tabeli "uslugi" (typowo: ile jest wartości nie-NULL). Nie zwraca listy cen ani ich sumy lub średniej, bo do tego służą odpowiednio zwykły SELECT, SUM oraz AVG.

Pełne wyjaśnienie:

Zapytanie SELECT COUNT(cena) FROM uslugi; używa funkcji agregującej COUNT. Funkcje agregujące zwracają wynik podsumowujący dla zbioru wierszy, więc rezultatem jest jedna wartość liczbowa, a nie lista rekordów.

Wariant COUNT(cena) zlicza, ile wartości występuje w kolumnie "cena" w tabeli "uslugi". W praktyce w SQL najczęściej oznacza to liczbę wartości niepustych (nie-NULL) w tej kolumnie. Dzięki temu można np. sprawdzić, ile usług ma faktycznie wpisaną cenę.

Dlaczego pozostałe odpowiedzi są błędne?

  • "Średnią cenę usług w tabeli." – średnią oblicza funkcja AVG(cena), a nie COUNT.
  • "Wszystkie ceny usług w tabeli." – aby zwrócić listę cen, używa się zapytania wybierającego kolumnę (np. wybór wartości z wielu wierszy), bez agregacji COUNT.
  • "Sumę cen usług w tabeli." – sumę oblicza funkcja SUM(cena), a nie COUNT.

Wskazówka egzaminacyjna: zawsze rozpoznaj, czy w zapytaniu jest agregat (COUNT/SUM/AVG). Jeśli tak i nie ma GROUP BY, spodziewaj się pojedynczej liczby jako wyniku.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
COUNT zwraca liczbę elementów spełniających warunek zliczania. Najczęściej jest to jedna liczba podsumowująca dla całej tabeli lub dla grup (gdy użyjesz GROUP BY). To nie jest lista rekordów, tylko wynik agregacji.
COUNT(*) zlicza wiersze (rekordy) w wyniku zapytania. COUNT(kolumna) zlicza wartości w danej kolumnie i w wielu systemach pomija wartości NULL. Różnica jest kluczowa, gdy część rekordów ma puste pola.
Ponieważ COUNT jest funkcją agregującą, która redukuje wiele wierszy do jednej liczby. Aby zwrócić wszystkie ceny, wybiera się kolumnę bez agregacji (zwykły SELECT kolumny), ewentualnie z filtrowaniem i sortowaniem.
Do średniej służy funkcja AVG. W praktyce używa się zapytania z AVG(cena) i ewentualnie warunku, aby pominąć niewłaściwe rekordy. AVG zwraca jedną wartość liczbową – średnią z wartości w kolumnie.
Do sumowania wartości używa się funkcji SUM, np. SUM(cena). Podobnie jak COUNT, jest to agregat i zwraca jedną liczbę. Warto pamiętać o danych pustych (NULL) oraz o ewentualnym filtrowaniu rekordów warunkiem WHERE.
Najczęściej COUNT(kolumna) nie zlicza wartości NULL, a COUNT(*) zlicza wiersze niezależnie od tego, czy kolumny są puste. Na egzaminie traktuj to jako standardowe zachowanie i zwracaj uwagę, czy w zadaniu mowa o "rekordach" czy o "wartościach w kolumnie".
COUNT jest używany do statystyk i liczników: liczba użytkowników, liczba zamówień, liczba usług z wypełnioną ceną, liczba komentarzy pod wpisem itp. Jest też przydatny w paginacji (np. policzenie, ile jest wyników do wyświetlenia).
Częste błędy to mylenie COUNT z SUM/AVG, używanie COUNT(kolumna) zamiast COUNT(*) przy liczeniu rekordów oraz ignorowanie wpływu NULL. Problemy pojawiają się też przy JOIN, gdzie liczba wierszy może się zwielokrotnić i wynik COUNT rośnie.
W praktyce filtruje się rekordy z pustą wartością i liczy je, np. przez warunek WHERE dla wartości NULL, a następnie użycie COUNT(*). To klasyczny sposób kontroli jakości danych: rozdzielasz "liczbę wszystkich usług" od "liczby usług z ceną".
Ćwicz na małych tabelach z danymi, w tym z wartościami NULL. Porównuj wyniki COUNT(*), COUNT(kolumna), SUM i AVG oraz dodawaj WHERE i GROUP BY. Dobrą metodą jest przewidywanie typu wyniku: czy zapytanie ma zwrócić jedną liczbę, czy wiele wierszy.
info

Statystycznie 60% uczniów zna prawidłową odpowiedź. średnie

Według specjalistów z branży: "COUNT(cena) jest funkcją agregującą, więc zwraca jedną liczbę: ile wartości znajduje się w kolumnie "cena" w tabeli "uslugi" (typowo: ile jest wartości nie-NULL)."

Źródła:

  • PostgreSQL Documentation: Aggregate Functions (COUNT) — https://www.postgresql.org/docs/current/functions-aggregate.html (dostęp: 2026-03-02)
  • MySQL 8.0 Reference Manual: Aggregate (GROUP BY) Functions (COUNT) — https://dev.mysql.com/doc/refman/8.0/en/aggregate-functions.html (dostęp: 2026-03-02)
  • SQLite Documentation: Core Functions (count) — https://www.sqlite.org/lang_corefunc.html#count (dostęp: 2026-03-02)

Materiały:

  • Dokumentacja SQL wybranej bazy (sekcja o funkcjach agregujących)
  • Ćwiczenia: porównanie COUNT(*), COUNT(kolumna), SUM(kolumna), AVG(kolumna) na tabelach z wartościami NULL
  • Notatki/ściąga z podstawowych funkcji agregujących i GROUP BY

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego