PostgreSQL COUNT-funktion

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

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.