Problem:
Du vil gerne bestemme, hvor mange rækker en tabel har.
Eksempel:
Vores database har en tabel med navnet pet med data i følgende kolonner:id , eID (elektronisk identifikator) og name .
| id | eID | navn |
|---|---|---|
| 1 | 23456 | gnistende |
| 2 | 23457 | mily |
| 3 | NULL | mindre |
| 4 | NULL | carl |
| 5 | 34545 | maggy |
Lad os tælle alle rækker i tabellen.
Løsning:
COUNT(*) tæller det samlede antal rækker i tabellen:
SELECT COUNT(*) as count_pet FROM pet;
Her er resultatet:
| count_pet |
|---|
| 5 |
I stedet for at indsætte stjernen som argument, kan du bruge navnet på en bestemt kolonne:
SELECT COUNT(id) as count_pet FROM pet;
I dette tilfælde COUNT(id) tæller antallet af rækker, hvor id er ikke NULL .
Diskussion:
Brug COUNT aggregeringsfunktion til at tælle antallet af rækker i en tabel. Denne funktion tager navnet på kolonnen som dens argument (f.eks. id ) og returnerer antallet af rækker for denne særlige kolonne i tabellen (f.eks. 5).
Som nævnt ovenfor, når du angiver en kolonne i stedet for stjernen, vil funktionen kun tælle ikke-NULL værdier. Da id er den primære nøgle i vores tabel – og derfor har en unik og ikke-NULL værdier – det er en god kandidat til at tælle det samlede antal rækker i tabellen.
For at tælle alle rækker kan du selvfølgelig i stedet indsætte stjernetegnet som argument til COUNT. Dette vil tælle alle rækker, inklusive dem med værdien NULL i enhver kolonne.
Her er et eksempel på at tælle antallet af rækker for en kolonne, der har NULL værdier:
SELECT COUNT(eID) as count_pet FROM pet;
| count_pet |
|---|
| 3 |
Det anbefales, at du sender en primær nøglekolonne eller *-tegnet til funktionen COUNT for at tælle antallet af rækker i en tabel. Som vi har set, vil begge tilgange give det samme resultat.