CodeGym /Kursy /SQL SELF /Wprowadzenie do funkcji agregujących

Wprowadzenie do funkcji agregujących

SQL SELF
Poziom 7 , Lekcja 0
Dostępny

Funkcje agregujące... Te rzeczy to prawdziwi magicy w świecie analizy danych! Pomagają zamienić miliony wierszy danych w skondensowane i zrozumiałe wyniki. Dzięki nim możemy liczyć, znajdować minimum i maksimum, uśredniać wartości i robić mnóstwo innych rzeczy. No to lecimy po kolei!

Funkcje agregujące — to specjalne funkcje SQL, które wykonują operacje na grupach wierszy i zwracają jeden wynik. Jakby to porównać, to tak jakbyś zebrał całą statystykę o swojej porannej kawie, na przykład: ile filiżanek wypiłeś w tygodniu, czy dodałeś cukier albo ile dni z rzędu dolewałeś śmietanki.

Przykłady zadań, które rozwiązują funkcje agregujące:

  • Policzyć całkowitą liczbę rekordów w tabeli.
  • Znaleźć minimalne lub maksymalne wartości w kolumnie liczbowej.
  • Zsumować wartości w jednej z kolumn.
  • Wyliczyć średnią wszystkich wartości w kolumnie.
  • Wyodrębnić unikalne wartości.

Jak to działa "pod maską"?

SQL wykonuje funkcję agregującą po pobraniu danych w SELECT. Na przykład, gdy podajesz SUM() albo AVG(), SQL najpierw zbiera dane, a potem wykonuje obliczenie tylko dla wybranych wierszy.

Podstawowe funkcje agregujące w PostgreSQL

No to przejdźmy do praktyki i zobaczmy top 5 naszych bohaterów:

  1. COUNT() — liczy liczbę wierszy.
  2. SUM() — sumuje wartości w kolumnie liczbowej.
  3. AVG() — wylicza średnią wartość.
  4. MIN() — znajduje najmniejszą wartość.
  5. MAX() — znajduje największą wartość.

Przykłady użycia funkcji agregujących

  1. Zliczanie wierszy za pomocą COUNT()

Funkcja COUNT() pozwala policzyć całkowitą liczbę wierszy w tabeli albo liczbę niepustych wartości w konkretnej kolumnie.

Przykład: załóżmy, że mamy tabelę students, która przechowuje info o studentach:

id name age grade
1 Otto Art 20 85
2 Maria Chi 22 90
3 Alex Lin 21 78
4 Anna Song 23 NULL

Policzmy całkowitą liczbę studentów:

SELECT 
    COUNT(*) AS total_students
FROM students;

Wynik:

total_students
4

Teraz policzmy ilu studentów ma wpisaną ocenę (grade):

SELECT 
    COUNT(grade) AS students_with_grades
FROM students;

Wynik:

students_with_grades
3

Dlaczego tak wyszło? Bo COUNT(column) ignoruje wartości NULL.

  1. Sumowanie za pomocą SUM()

Funkcja SUM() służy do sumowania wszystkich wartości w kolumnie liczbowej.

Przykład: sprawdźmy ile łącznie punktów zdobyli nasi studenci.

SELECT 
    SUM(grade) AS total_grades
FROM students;

Wynik:

total_grades
253

Uwaga: Jeśli w kolumnie są NULL, po prostu są ignorowane przy sumowaniu.

  1. Średnia wartość za pomocą AVG()

Funkcja AVG() wylicza średnią wartość ze wszystkich liczbowych wpisów w kolumnie.

Przykład: policzmy średnią ocenę studentów.

SELECT 
    AVG(grade) AS average_grade
FROM students;

Wynik:

average_grade
84.33

Pewnie zauważyłeś, że NULL znowu są ignorowane.

  1. Minimum i maksimum z MIN() i MAX()

Czasem trzeba znaleźć najmniejszą albo największą wartość. Do tego są MIN() i MAX().

Przykład: znajdźmy najmłodszego i najstarszego studenta.

SELECT 
    MIN(age) AS youngest_student, 
    MAX(age) AS oldest_student
FROM students;

Wynik:

youngest_student oldest_student
20 23

O tych funkcjach pogadamy szerzej w kolejnych wykładach.

Poznanie NULL

O NULL będzie osobny wykład, ale w skrócie: NULL to brak wartości. Nic. Pustka. Nullik, jak jest!

Załóżmy, że mamy tabelę students, która przechowuje info o studentach:

id name age grade hobbie
1 Otto Art 20 85
2 Maria Chi 22 90 Taniec
3 Alex Lin 21 78
4 Anna Song 23

Imię i wiek są zawsze, ale ocena i hobby mogą być puste. Jeśli w komórce tabeli nie ma żadnej wartości, mówi się, że zawiera NULL. NULL to nie liczba i nie string, to specjalne oznaczenie, które znaczy brak jakiejkolwiek wartości.

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION