PostgreSQL COUNT-funktion

Sammanfattning: I den här handledningen lär du dig hur du använder PostgreSQL COUNT()-funktionen för att räkna antalet rader i en tabell.

PostgreSQL COUNT() funktionsöversikt

COUNT()-funktionen är en aggregeringsfunktion som gör det möjligt för dig att få fram antalet rader som matchar ett visst villkor i en fråga.

Följande uttalande illustrerar olika sätt att använda COUNT()-funktionen.

COUNT(*)

Funktionen COUNT(*) returnerar antalet rader som returneras av ett SELECT-meddelande, inklusive NULL och dubbletter.

Code language: SQL (Structured Query Language) (sql)

När du tillämpar COUNT(*)-funktionen på hela tabellen måste PostgreSQL skanna hela tabellen sekventiellt.

Om du använder COUNT(*)-funktionen på en stor tabell blir frågan långsam. Detta är relaterat till PostgreSQLs MVCC-implementering. Eftersom flera transaktioner ser olika tillstånd av data samtidigt finns det inget direkt sätt för COUNT(*)-funktionen att räkna över hela tabellen, därför måste PostgreSQL skanna alla rader.

COUNT(column)

Som liknar COUNT(*)-funktionen returnerar COUNT(column)-funktionen antalet rader som returneras av en SELECT-klausul. Den tar dock inte hänsyn till NULL-värden i column.

Code language: SQL (Structured Query Language) (sql)

COUNT(DISTINCT column)

I den här formen returnerar COUNT(DISTINCT column) antalet unika värden som inte är nollvärden i column.

Code language: SQL (Structured Query Language) (sql)

Vi använder ofta COUNT()-funktionen tillsammans med GROUP BY-klausulen för att returnera antalet objekt för varje grupp. Vi kan till exempel använda COUNT() med GROUP BY-klausulen för att returnera antalet filmer i varje filmkategori.

PostgreSQL COUNT() funktionsexempel

Låt oss använda payment-tabellen i exempeldatabasen för demonstrationen.

1) PostgreSQL COUNT(*)-exempel

Följande anvisning använder COUNT(*)-funktionen för att returnera antalet transaktioner i payment-tabellen:

Code language: SQL (Structured Query Language) (sql)

Här är utmatningen:

2) PostgreSQL COUNT(DISTINCT column) example

För att få fram de olika beloppen som kunderna betalat använder du funktionen COUNT(DISTINCT amount) enligt följande exempel:

Code language: SQL (Structured Query Language) (sql)

PostgreSQL COUNT() med GROUP BY-klausul

För att få fram antalet betalningar av kunden använder du GROUP BY-klausulen för att gruppera betalningarna i grupper baserat på kundens id och använder COUNT()-funktionen för att räkna betalningarna för varje grupp.

Följande fråga illustrerar idén:

Code language: SQL (Structured Query Language) (sql)

Här är det partiella resultatet:

PostgreSQL COUNT() med HAVING-klausul

Du kan använda COUNT-funktionen i en HAVING-klausul för att tillämpa ett specifikt villkor på grupper. Följande uttalande hittar till exempel kunder som har gjort mer än 40 betalningar:

Code language: SQL (Structured Query Language) (sql)

I den här handledningen har du lärt dig hur du använder PostgreSQL COUNT()-funktionen för att returnera antalet rader i en tabell.

  • Var den här handledningen till hjälp?
  • JaNej

Lämna ett svar

Din e-postadress kommer inte publiceras.