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.