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