Funkcja PostgreSQL COUNT

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

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.