Problem:
Du vill bestämma hur många rader en tabell har.
Exempel:
Vår databas har en tabell som heter pet med data i följande kolumner:id , eID (elektronisk identifierare) och name .
| id | eID | namn |
|---|---|---|
| 1 | 23456 | gnistrande |
| 2 | 23457 | mily |
| 3 | NULL | lessy |
| 4 | NULL | carl |
| 5 | 34545 | maggy |
Låt oss räkna alla rader i tabellen.
Lösning:
COUNT(*) räknar det totala antalet rader i tabellen:
SELECT COUNT(*) as count_pet FROM pet;
Här är resultatet:
| count_pet |
|---|
| 5 |
Istället för att skicka in asterisken som argument kan du använda namnet på en specifik kolumn:
SELECT COUNT(id) as count_pet FROM pet;
I det här fallet, COUNT(id) räknar antalet rader där id är inte NULL .
Diskussion:
Använd COUNT aggregatfunktion för att räkna antalet rader i en tabell. Den här funktionen tar namnet på kolumnen som dess argument (t.ex. id ) och returnerar antalet rader för just denna kolumn i tabellen (t.ex. 5).
Som nämnts ovan, när du anger en kolumn istället för asterisken, kommer funktionen endast att räknas icke-NULL värden. Eftersom id är den primära nyckeln i vår tabell – och därför har unik och icke-NULL värden – det är en bra kandidat för att räkna det totala antalet rader i tabellen.
Naturligtvis, för att räkna alla rader kan du istället skicka in asterisktecknet som argument till COUNT. Detta kommer att räkna alla rader, inklusive de med värdet NULL i valfri kolumn.
Här är ett exempel på hur man räknar antalet rader för en kolumn som har NULL värden:
SELECT COUNT(eID) as count_pet FROM pet;
| count_pet |
|---|
| 3 |
Det rekommenderas att du skickar in en primärnyckelkolumn eller *-tecknet till COUNT-funktionen för att räkna antalet rader i en tabell. Som vi har sett kommer båda metoderna att ge samma resultat.