Podsumowanie: W tym poradniku dowiesz się, jak używać funkcji PostgreSQL COUNT() do zliczania liczby wierszy w tabeli.
PostgreSQL COUNT() przegląd funkcji
Funkcja COUNT() jest funkcją agregującą, która pozwala uzyskać liczbę wierszy spełniających określony warunek zapytania.
Poniższe wyrażenie ilustruje różne sposoby użycia funkcji COUNT().
COUNT(*)
Funkcja COUNT(*) zwraca liczbę wierszy zwróconych przez wyrażenie SELECT, łącznie z NULL i duplikatami.
Code language: SQL (Structured Query Language) (sql)
Gdy zastosujesz funkcję COUNT(*) do całej tabeli, PostgreSQL musi przeskanować sekwencyjnie całą tabelę.
Jeśli użyjesz funkcji COUNT(*) na dużej tabeli, zapytanie będzie wolne. Jest to związane z implementacją MVCC PostgreSQL. Ponieważ wiele transakcji widzi różne stany danych w tym samym czasie, nie ma bezpośredniego sposobu, aby funkcja COUNT(*) liczyła w całej tabeli, dlatego PostgreSQL musi skanować wszystkie wiersze.
COUNT(kolumna)
Podobnie jak funkcja COUNT(*), funkcja COUNT(column) zwraca liczbę wierszy zwróconych przez klauzulę SELECT. Nie bierze jednak pod uwagę wartości NULL w column.
Code language: SQL (Structured Query Language) (sql)
COUNT(DISTINCT column)
W tej postaci funkcja COUNT(DISTINCT column) zwraca liczbę unikalnych wartości non-null w column.
Code language: SQL (Structured Query Language) (sql)
Często używamy funkcji COUNT() z klauzulą GROUP BY, aby zwrócić liczbę elementów dla każdej grupy. Na przykład możemy użyć funkcji COUNT() z klauzulą GROUP BY, aby zwrócić liczbę filmów w każdej kategorii filmowej.
PostgreSQL COUNT() przykłady funkcji
Do demonstracji użyjmy tabeli payment w przykładowej bazie danych.

1) PostgreSQL COUNT(*) przykład
Poniższa instrukcja wykorzystuje funkcję COUNT(*) do zwrócenia liczby transakcji w tabeli payment:
Code language: SQL (Structured Query Language) (sql)
Oto dane wyjściowe:

2) PostgreSQL COUNT(DISTINCT kolumna) przykład
Aby uzyskać odrębne kwoty, które zapłacili klienci, używasz funkcji COUNT(DISTINCT amount), jak pokazano w poniższym przykładzie:
Code language: SQL (Structured Query Language) (sql)

PostgreSQL COUNT() with GROUP BY clause
Aby uzyskać liczbę płatności dokonanych przez klienta, używasz klauzuli GROUP BY do pogrupowania płatności w grupy na podstawie identyfikatora klienta i używasz funkcji COUNT() do zliczenia płatności dla każdej grupy.
Poniższe zapytanie ilustruje ten pomysł:
Code language: SQL (Structured Query Language) (sql)
Tutaj znajduje się częściowe wyjście:

PostgreSQL COUNT() z klauzulą HAVING
Możesz użyć funkcji COUNT w klauzuli HAVING, aby zastosować określony warunek do grup. Na przykład, poniższe wyrażenie znajdzie klientów, którzy dokonali więcej niż 40 płatności:
Code language: SQL (Structured Query Language) (sql)

W tym poradniku dowiedziałeś się, jak używać funkcji PostgreSQL COUNT() do zwracania liczby wierszy w tabeli.
- Czy ten poradnik był pomocny ?
- TakNie
.
