
Jak działa AVG w języku SQL? Przykłady zastosowania
Pracując z bazami danych, często musimy obliczać średnie wartości różnych zestawów danych. W SQL służy do tego funkcja AVG()
. Jest to funkcja agregująca, która ułatwia uzyskanie średnich wartości z wybranej kolumny tabeli. W tym artykule przyjrzymy się dokładnie, jak działa AVG
w SQL, jak jej używać i jakie pułapki mogą nas spotkać podczas jej stosowania.
Podstawowa składnia AVG
w SQL
Podstawowa składnia funkcji AVG()
jest bardzo prosta:
SELECT AVG(kolumna) FROM nazwa_tabeli;
Funkcja bierze wartości numeryczne z określonej kolumny, sumuje je i dzieli przez liczbę rekordów (ignorując wartości NULL
). Przykładowo, jeśli mamy tabelę produkty
z cenami, możemy obliczyć średnią cenę wszystkich produktów:
SELECT AVG(cena) AS srednia_cena FROM produkty;
AVG a wartości NULL
Jednym z kluczowych aspektów funkcji AVG()
jest jej sposób traktowania wartości NULL
. Funkcja nie bierze pod uwagę rekordów, w których dana kolumna zawiera wartość NULL
. Zobaczmy to na przykładzie:
ID | Cena |
---|---|
1 | 100 |
2 | 200 |
3 | NULL |
4 | 300 |
Jeśli obliczymy średnią cenę, SQL nie uwzględni rekordu o wartości NULL
:
SELECT AVG(cena) FROM produkty;
Wartość zwrócona wyniesie (100 + 200 + 300) / 3 = 200, a nie (100 + 200 + 300) / 4 = 150.
Obliczanie średniej w grupach
Jeśli chcemy obliczyć średnie wartości dla różnych grup danych, możemy użyć GROUP BY
. Przykładowo, mamy tabelę pracownicy
i chcemy sprawdzić średnie wynagrodzenie w poszczególnych działach:
SELECT dzial, AVG(wynagrodzenie) AS srednie_wynagrodzenie
FROM pracownicy
GROUP BY dzial;
Dzięki tej składni SQL podzieli dane na grupy według kolumny dzial
, a następnie obliczy średnią w każdej z nich.
AVG a precyzja wyników
Funkcja AVG()
może zwracać wartości o różnych typach danych w zależności od typu kolumny. W bazach takich jak MySQL czy PostgreSQL wynik może być zwrócony jako liczba zmiennoprzecinkowa, szczególnie gdy operujemy na liczbach całkowitych. Aby upewnić się, że wynik jest w oczekiwanym formacie, można rzutować wynik:
SELECT CAST(AVG(cena) AS DECIMAL(10,2)) FROM produkty;
AVG w połączeniu z innymi funkcjami
AVG()
może być łączona z innymi funkcjami SQL, takimi jak ROUND()
czy COUNT()
, aby ustandaryzować format wyniku:
SELECT ROUND(AVG(cena), 2) FROM produkty;
Lub sprawdzić, ile wartości było podstawą do obliczenia średniej:
SELECT COUNT(cena), AVG(cena) FROM produkty;
Podsumowanie
Funkcja AVG()
w SQL to potężne narzędzie do analizy danych, które pozwala łatwo obliczać średnie wartości. Należy jednak pamiętać o kilku kwestiach:
- Ignoruje wartości
NULL
. - Można jej używać w połączeniu z
GROUP BY
, aby obliczać średnie w grupach. - W zależności od silnika bazy danych wynik może mieć różną precyzję.
- Warto rozważyć rzutowanie wartości, jeśli potrzebujemy określonego formatu liczbowego.
Znajomość tych zasad pozwoli uniknąć błędów i sprawnie korzystać z funkcji AVG()
w analizie danych SQL.
Inny ciekawy artykuł:
Jak działa SUM w języku SQL? Przykłady zastosowania
Opanuj SQL z moim kursem!
Poznasz zarówno podstawy, jak i zaawansowane zapytania analityczne (CTE, subqueries, window functions). Nauczysz się pracować na różnych silnikach – na kursie pracujemy zarówno na MySQL, jak i na Postgres. Wszystko zainstalujemy na Twoim komputerze, plus dostaniesz mnóstwo zestawów danych do ćwiczeń.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.