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
