Wprowadzenie
W PostgreSQL funkcja COUNT()
zwraca liczbę wierszy w określonej tabeli, a wyrażenie SELECT
zwraca rekordy, które spełniają określone warunki zapytania. Użyte razem, ta funkcja i wyrażenie mogą przenieść Twoje zapytania PostgreSQL na wyższy poziom i zwrócić liczbę rekordów, które spełniają kryteria określone w zapytaniu. W tym artykule pokażemy, jak używać funkcji Postgres COUNT i SELECT w tandemie, aby dowiedzieć się, ile rekordów zostało zwróconych z danego zapytania.
Warunki wstępne
Zanim przejdziesz dalej w tym poradniku, upewnij się, że PostgreSQL jest zainstalowany na Twoim komputerze. Będziesz musiał używać bazy danych, aby wykonywać swoje SELECT COUNT
zadania. Musisz również posiadać podstawową wiedzę na temat PostgreSQL, aby móc podążać za przykładami zawartymi w tym artykule.
PostgreSQL COUNT SELECT
Następująca składnia jest używana, gdy funkcja COUNT()
jest używana w połączeniu z instrukcją SELECT
:
1
|
SELECT COUNT ( , ) FROM TABLE_NAME;
|
Pogłębmy nieco składnię przedstawioną powyżej:
-
SELECT
– Służy do wybierania określonych kolumn z bazy danych. -
COUNT
– Służy do zliczania liczby rekordów w tabeli. -
DISTINCT
– Klauzula ta służy do eliminowania duplikatów ze zwracanych rekordów. -
Asterisk (*)
– Użycie gwiazdki jest równoznaczne z wyborem wszystkich kolumn w tabeli. -
column_name
– Przedstawia nazwę kolumny, dla której mają być zliczane rekordy. -
table_name
– Przedstawia nazwę tabeli, dla której mają być zliczane rekordy.
PostgreSQL Przykłady funkcji zliczania
W naszych przykładach będziemy używać tabeli o nazwie countries
:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
country_id | country_name | continent | code
-.———–+————————–+—————+—— 35 | RPA | Afryka | AF 14 | Kanada | Ameryka Północna | NA 51 | Kuba | Ameryka Północna | NA 41 | Meksyk | Ameryka Północna | NA 45 | Stany Zjednoczone Ameryki | Ameryka Północna | NA 85 | Argentyna | Ameryka Południowa | SA 37 | Wenezuela | Ameryka Południowa | SA 63 | Filipiny | Azja | AS 83 Azja | AS 83 | Chiny | Azja | AS 22 | Rosja | Azja | AS 21 | Zjednoczone Emiraty Arabskie | Azja | AS 62 | Niemcy | Europa | EU 73 | Włochy | Europa | EU 28 | Wielka Brytania | Europa | EU |
SELECT COUNT all example
Dla naszego pierwszego przykładu, policzymy liczbę wierszy w tabeli:
1
|
SELECT COUNT(*) AS number_of_rows FROM countries;
|
Wynik tego zapytania będzie wyglądał następująco:
1
2 3 |
number_of_rows
—————- 14 |
Zauważ, że użyliśmy aliasu, dołączając klauzulę AS
, aby określić nową nazwę kolumny.
Wynik zawiera tylko jedną kolumnę, ponieważ jedynymi zwracanymi danymi jest liczba wierszy w tabeli.
Przykład kolumnyCOUNT
Następnie spróbujmy policzyć liczbę wierszy w określonej kolumnie.
1
|
SELECT COUNT(„nazwa_kraju”) AS number_of_rows FROM countries;
|
Wynik tego zapytania można zobaczyć poniżej:
1
2 3 |
number_of_rows
—————- 14 |
Wynik jest taki sam jak w pierwszym przykładzie, ponieważ to zapytanie również zlicza całkowitą liczbę wierszy w tabeli.
Count distinct example
Spróbujmy tym razem bardziej złożony przykład. Użyjemy klauzuli DISTINCT
i policzymy liczbę wierszy w kolumnie o nazwie „kontynent”:
1
|
SELECT COUNT( DISTINCT continent ) FROM countries;
|
Wynik tego zapytania będzie nieco inny:
1
2 3 |
COUNT
——- 5 |
W tym zapytaniu wynik wynosi tylko pięć, ponieważ funkcja DISTINCT
usuwa wszelkie duplikaty wartości znalezione w rekordach.
COUNT GROUP BY
W naszym kolejnym przykładzie wykorzystamy klauzulę GROUP BY
. Zliczymy liczbę wierszy dla każdej wartości znalezionej w kolumnie o nazwie „kod”:
1
2 3 |
SELECT code, COUNT(code)
FROM countries GROUP BY code; |
Oto wynik naszego zapytania:
1
2 3 4 5 6 7 |
code | COUNT
——+——-. NA | 4 SA | 2 AF | 1 AS | 4 EU | 3 |
Wniosek
Gdy wykonujesz zapytania do tabeli PostgreSQL, zdarzają się sytuacje, w których bardziej potrzebna jest liczba rekordów spełniających określone warunki, niż same rekordy. Użycie funkcji Postgres COUNT i SELECT razem może pomóc w uzyskaniu pożądanych wyników. W tym artykule przedstawiliśmy kilka przykładów użycia instrukcji PostgreSQL SELECT
w połączeniu z funkcją COUNT()
. Jeśli będziesz postępował zgodnie z tymi przykładami, będziesz przygotowany do tworzenia podobnych zapytań dla własnych tabel PostgreSQL.