Jak działa AVG w języku SQL? Przykłady zastosowania

Jak działa AVG w języku SQL? Przykłady zastosowania

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

KajoDataSpace