Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Bazy danych

Słowa kluczowe: AVG() w SQL COUNT() w SQL SUM() w SQL

W przedstawionym fragmencie kwerendy języka SQL, komenda SELECT ma za zadanie zwrócić

SELECT COUNT(wartosc) FROM ...
A. średnią w kolumnie wartosc.
B. liczbę wierszy.
C. sumę w kolumnie wartosc.
D. średnią tabeli.

Pytanie z egzaminu CKE, styczeń 2017 (arkusz E.14-X-17.01).

Instrukcja SELECT COUNT(wartosc) FROM ... używa funkcji agregującej COUNT, czyli zliczania. W praktyce taka kwerenda zwraca liczbę rekordów, dla których kolumna wartosc ma wartość inną niż NULL. W typowych zadaniach szkolnych przyjmuje się więc, że chodzi o liczbę wierszy w wyniku zapytania. Warto jednak znać ten szczegół, bo w prawdziwej bazie danych robi różnicę: COUNT(*) liczy wszystkie wiersze, a COUNT(wartosc) pomija wiersze, gdzie wartosc jest pusta, czyli NULL. Moim zdaniem to jedna z tych drobnych rzeczy w SQL, które potem ratują przed dziwnymi wynikami raportów. Przykładowo zapytanie SELECT COUNT(id) FROM zamowienia może policzyć liczbę zamówień, jeżeli id jest kluczem i zawsze istnieje. W raportach sprzedażowych, statystykach użytkowników czy panelach administracyjnych COUNT jest używane bardzo często. Dobrą praktyką jest też nadawanie aliasu, np. SELECT COUNT(*) AS liczba_rekordow FROM produkty, bo wtedy wynik ma czytelną nazwę kolumny.
W tym fragmencie łatwo pomylić funkcje agregujące SQL, bo wszystkie działają na zbiorze rekordów i często występują w podobnym miejscu zapytania SELECT. COUNT nie oblicza jednak średniej ani sumy. Średnia byłaby liczona funkcją AVG(wartosc), a nie przez COUNT. Co więcej, określenie „średnia tabeli” jest dość nieprecyzyjne, bo tabela jako całość nie ma jednej automatycznej średniej. Średnią wyznacza się zwykle dla konkretnej kolumny liczbowej, np. średnia cena produktu albo średni wiek użytkownika. Podobnie suma w kolumnie wartosc wymagałaby funkcji SUM(wartosc), która dodaje wartości liczbowe z kolejnych wierszy. COUNT działa inaczej: interesuje go liczba wystąpień, a nie sama wielkość danych. Jeżeli w kolumnie wartosc są liczby 10, 20 i 50, to SUM da 80, AVG da około 26,67, a COUNT da 3, o ile żadna z wartości nie jest NULL. Typowy błąd myślowy polega na tym, że ktoś widzi nazwę kolumny w nawiasie i zakłada, że SQL wykonuje na niej obliczenia arytmetyczne. Tutaj nawias oznacza argument funkcji agregującej, ale rodzaj działania określa sama funkcja. W pracy z bazami danych warto zapamiętać prostą zasadę: COUNT liczy rekordy, SUM sumuje wartości, AVG wyciąga średnią, MIN i MAX szukają wartości skrajnych. To bardzo podstawowy, ale naprawdę praktyczny zestaw narzędzi do raportowania danych.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.