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: Programowanie webowe Bazy danych

Słowa kluczowe: COUNT() w SQL

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

SELECT SUM(wartosc) FROM ...
A. średnią tabeli.
B. średnią w kolumnie wartosc.
C. liczbę wierszy.
D. sumę w kolumnie wartosc.
Funkcja SUM(wartosc) w zapytaniu SELECT SUM(wartosc) FROM ... zwraca sumę wartości zapisanych w kolumnie wartosc. Jest to klasyczna funkcja agregująca SQL, czyli taka, która przetwarza wiele rekordów i oddaje jeden wynik zbiorczy. W praktyce używa się jej np. do policzenia łącznej wartości zamówień, sumy wpłat klienta, całkowitego stanu magazynowego albo łącznej liczby godzin przepracowanych w projekcie. Moim zdaniem to jedna z tych funkcji SQL, które warto znać naprawdę dobrze, bo pojawia się w raportach cały czas. Ważna rzecz: SUM nie liczy średniej i nie zlicza wierszy, tylko dodaje wartości liczbowe z podanej kolumny. Jeżeli w kolumnie występują wartości NULL, standardowo są one pomijane w obliczeniach, więc wynik dotyczy tylko znanych wartości. W dobrych praktykach warto też nadawać alias, np. SELECT SUM(wartosc) AS suma_wartosci FROM zamowienia, żeby wynik w aplikacji lub raporcie miał czytelną nazwę. Gdy potrzebne są sumy dla grup, dokłada się GROUP BY, na przykład suma sprzedaży według kategorii produktu.
W tym fragmencie łatwo pomylić kilka funkcji agregujących SQL, bo wszystkie wyglądają podobnie: mają nazwę funkcji i nazwę kolumny w nawiasie. Jednak SUM(wartosc) nie oblicza średniej ani dla całej tabeli, ani dla samej kolumny wartosc. Do średniej służy funkcja AVG, na przykład SELECT AVG(wartosc) FROM zamowienia. AVG sumuje wartości i dzieli je przez liczbę niepustych rekordów, natomiast SUM zatrzymuje się na samym dodawaniu. To niby drobna różnica, ale w raportach finansowych może kompletnie zmienić wynik, więc trzeba być uważnym. Nie chodzi też o liczbę wierszy. Do zliczania rekordów używa się COUNT, najczęściej COUNT(*) albo COUNT(nazwa_kolumny), zależnie od tego, czy mają być liczone wszystkie wiersze, czy tylko te z niepustą wartością w danej kolumnie. Typowy błąd myślowy polega na tym, że ktoś widzi SELECT i zakłada, że zapytanie po prostu zwraca dane z tabeli wiersz po wierszu. Tutaj jednak SELECT korzysta z funkcji agregującej, więc wynik jest obliczeniem wykonanym na całym zbiorze rekordów. Z mojego doświadczenia najlepiej zapamiętać to praktycznie: SUM to suma kwot, AVG to średnia kwota, COUNT to liczba rekordów. Takie rozróżnienie jest podstawą przy tworzeniu zestawień, paneli administracyjnych i raportów w bazach 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.