Summary: I denne tutorial lærer du at bruge PostgreSQL COUNT()-funktionen til at tælle antallet af rækker i en tabel.
PostgreSQL COUNT() funktionsoversigt
COUNT()-funktionen er en aggregeret funktion, der giver dig mulighed for at få antallet af rækker, der passer til en bestemt betingelse i en forespørgsel.
Den følgende erklæring illustrerer forskellige måder at bruge COUNT()-funktionen på.
COUNT(*)
Funktionen COUNT(*) returnerer antallet af rækker, der returneres af en SELECT-erklæring, herunder NULL og dubletter.
Code language: SQL (Structured Query Language) (sql)
Når du anvender COUNT(*)-funktionen på hele tabellen, skal PostgreSQL scanne hele tabellen sekventielt.
Hvis du bruger COUNT(*)-funktionen på en stor tabel, vil forespørgslen være langsom. Dette er relateret til PostgreSQL MVCC-implementeringen. Da flere transaktioner ser forskellige tilstande af data på samme tid, er der ingen direkte måde for COUNT(*)-funktionen at tælle på tværs af hele tabellen, og PostgreSQL skal derfor scanne alle rækker.
COUNT(column)
I lighed med COUNT(*)-funktionen returnerer COUNT(column)-funktionen antallet af rækker, der returneres af en SELECT-klausul. Den tager dog ikke hensyn til NULL-værdier i column.
Code language: SQL (Structured Query Language) (sql)
COUNT(DISTINCT column)
I denne form returnerer COUNT(DISTINCT column) antallet af unikke ikke-nul-værdier i column.
Code language: SQL (Structured Query Language) (sql)
Vi bruger ofte COUNT()-funktionen med GROUP BY-klausulen til at returnere antallet af elementer for hver gruppe. Vi kan f.eks. bruge COUNT() med GROUP BY-klausulen til at returnere antallet af film i hver filmkategori.
PostgreSQL COUNT()-funktionen eksempler
Lad os bruge payment-tabellen i eksempeldatabasen til demonstrationen.

1) PostgreSQL COUNT(*) eksempel
Den følgende anvisning bruger COUNT(*)-funktionen til at returnere antallet af transaktioner i payment-tabellen:
Code language: SQL (Structured Query Language) (sql)
Her er output:

2) PostgreSQL COUNT(DISTINCT column) example
For at få de forskellige beløb, som kunderne har betalt, bruger du COUNT(DISTINCT amount)-funktionen som vist i følgende eksempel:
Code language: SQL (Structured Query Language) (sql)

PostgreSQL COUNT() med GROUP BY-klausul
For at få antallet af betalinger af kunden bruger du GROUP BY-klausulen til at gruppere betalingerne i grupper baseret på kunde-id, og bruger COUNT()-funktionen til at tælle betalingerne for hver gruppe.
Følgende forespørgsel illustrerer idéen:
Code language: SQL (Structured Query Language) (sql)
Her er det delvise output:

PostgreSQL COUNT() med HAVING-klausul
Du kan bruge COUNT-funktionen i en HAVING-klausul til at anvende en specifik betingelse på grupper. Følgende anvisning finder f.eks. kunder, der har foretaget mere end 40 betalinger:
Code language: SQL (Structured Query Language) (sql)

I denne vejledning har du lært at bruge PostgreSQL COUNT()-funktionen til at returnere antallet af rækker i en tabel.
- Var denne vejledning nyttig?
- JaNej
