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