Autor: 05.12.2023
SQL - grupowanie i zliczanie rekordów za pomocą COUNT
W SQl bardzo często zachodzi potrzeba pogrupowania rekordów według określonego kryterium. Często też chcemy policzyć, ile jest rekordów w danej grupie. Dlatego przygotowaliśmy ten artykuł, który ma za zadanie wyjaśnić Ci w możliwie prosty sposób obydwie techniki.
Grupowanie i zliczanie - jak to działa
Grupowanie to technika, która pozwala nam połączyć i podsumować rekordy z jednej kategorii. Tą kategorią może być dowolne kryterium. Najpierw popatrz na fragment tabeli, z którą będziemy pracowali:
category_name | brand_name | employees |
Transport | Circalis | 450 |
Telekomunikacja | Xenomo | 120 |
Handel | Shieldsmore | 1300 |
Handel | Oleoco | 500 |
Telekomunikacja | Xoleum | 1200 |
Mamy listę firm, z kategorią/branżą danej firmy oraz ilością pracowników w kolumnie employees. Będziemy te dane za chwilę grupowali.
Podstawowym kryterium jest kategoria/branża (category_name) - będziemy po prostu grupowali rekordy w jednej kategori. Przy okazji policzmy ile jest firm w danej kategorii. Oto zapytanie:
SELECT category_name, COUNT(*)
FROM brands
GROUP BY category_name;
Mamy kilka ciekawych elementów:
- SELECT category_name, COUNT(*) wybieramy nazwę kategorii i dodajemy dynamicznie ilość rekordów w danej kategorii za pomocą funkcji COUNT().
- GROUP BY category_name; grupujemy na podstawie nazwy kategorii. Innymi słowy wszystkie kategorie z identyczną nazwą zostaną potraktowane jako jedna grupa.
Wynik wygląda tak:
category_name | COUNT(*) |
Handel | 2 |
Telekomunikacja | 2 |
Transport | 1 |
Wiemy już więc ile jest firm w danej kategorii! Te dwie techniki, czyli grupowanie oraz zliczanie, często są stosowane razem. Niejednokrotnie chcemy podzielić wyniki na grupy, po to, aby sprawdzić ile jest rekordów w danej grupie. Teraz już wiesz, jak te czynności można wykonać za pomocą SQL.