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
.