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.