Oversigt :i denne vejledning lærer du, hvordan du bruger SQLite COUNT
funktion for at få antallet af elementer i en gruppe.
Introduktion til SQLite COUNT()
funktion
Funktionen COUNT()
er en aggregeret funktion, der returnerer antallet af elementer i en gruppe.
For eksempel kan du bruge COUNT()
funktion for at få antallet af spor fra tracks
tabel, antallet af kunstnere fra artists
tabel og så videre.
Det følgende illustrerer den grundlæggende syntaks for COUNT
funktion:
COUNT([ALL | DISTINCT] expression);
Code language: SQL (Structured Query Language) (sql)
Argumenter
COUNT
funktion opfører sig i henhold til de argumenter, du sender ind i den, og muligheden ALL
eller DISTINCT
som du angiver.
Det følgende beskriver betydningen af ALL
og DISTINCT
muligheder:
ALL
:når du angiver alle, vilCOUNT()
funktion tæller alle ikke-nul værdier inkluderer dubletter.COUNT()
funktionen brugerALL
indstilling som standard, hvis du springer den over.DISTINCT
:hvis du eksplicit brugerDISTINCT
mulighed,COUNT
funktion tæller kun unikke og ikke-nullværdier.
Udtrykket kan være en kolonne eller et udtryk, der involverer kolonner, hvortil funktionen COUNT()
anvendes.
SQLite giver en anden syntaks for COUNT()
funktion:
COUNT(*)
Code language: SQL (Structured Query Language) (sql)
COUNT(*)
funktion returnerer antallet af rækker i en tabel, inklusive rækkerne inklusive NULL og dubletter.
SQLite COUNT()
funktionsillustration
Først skal du oprette en tabel kaldet t1
der har én kolonne:
CREATE TABLE t1(c INTEGER);
Code language: SQL (Structured Query Language) (sql)
For det andet skal du indsætte fem rækker i t1
tabel:
INSERT INTO t1(c)
VALUES(1),(2),(3),(null),(3);
Code language: SQL (Structured Query Language) (sql)
For det tredje, forespørg data fra t1
tabel:
SELECT * FROM t1;
Code language: SQL (Structured Query Language) (sql)
For det fjerde skal du bruge COUNT(*)
funktion til at returnere antallet af rækker i t1
tabel:
SELECT COUNT(*) FROM t1;
Code language: SQL (Structured Query Language) (sql)
Som du tydeligt kan se fra outputtet, inkluderer resultatsættet NULL og duplikerede rækker.
For det femte skal du bruge COUNT(expression)
for at få antallet af ikke-nul-værdier i kolonnen c
:
SELECT COUNT(c) FROM t1;
Code language: SQL (Structured Query Language) (sql)
I dette eksempel er COUNT(c)
returnerer antallet af ikke-nul-værdier. Det tæller de duplikerede rækker som separate rækker.
For det sjette, brug COUNT(DISTINCT expression)
for at få antallet af unikke og ikke-nul-værdier i kolonne c
:
SELECT COUNT(DISTINCT c) FROM t1;
Code language: SQL (Structured Query Language) (sql)
SQLite COUNT(*)
eksempler
Vi tager tabellen tracks
i eksempeldatabasen for at demonstrere funktionaliteten af COUNT(*)
funktion.
1) SQLite COUNT(*)
eksempel
For at få antallet af rækker fra tracks
tabel, bruger du COUNT(*)
fungerer som følger:
SELECT count(*)
FROM tracks;
Code language: SQL (Structured Query Language) (sql)
Prøv det
count(*)
--------
3503
Code language: plaintext (plaintext)
2) SQLite COUNT(*)
med WHERE
klausuleksempel
Følgende sætning bruger COUNT(*)
funktion med en WHERE
klausul for at finde antallet af spor, hvis album-id er 10:
SELECT COUNT(*)
FROM tracks
WHERE albumid = 10;
Code language: SQL (Structured Query Language) (sql)
Prøv det
COUNT(*)
--------
14
3) SQLite COUNT(*)
med GROUP BY
klausuleksempel
For at få alle albummer og antallet af numre i hvert album kombinerer du COUNT(*)
funktion med GROUP BY
klausul:
SELECT
albumid,
COUNT(*)
FROM
tracks
GROUP BY
albumid;
Code language: SQL (Structured Query Language) (sql)
Prøv det
AlbumId COUNT(*)
------- --------
1 10
2 1
3 3
4 8
5 15
6 13
7 12
8 14
9 8
10 14
...
I dette eksempel:
- For det første,
GROUP BY
klausul grupperer numre efter album-id. - Derefter,
COUNT(*)
funktion returnerer antallet af spor for hvert album eller gruppe af spor.
4) SQLite COUNT(*)
med HAVING
klausuleksempel
Det følgende bruger COUNT(*)
i HAVING
klausul for at finde album, der har mere end 25 numre:
SELECT
albumid,
COUNT(*)
FROM
tracks
GROUP BY
albumid
HAVING COUNT(*) > 25
Code language: SQL (Structured Query Language) (sql)
Prøv det
AlbumId COUNT(*)
------- --------
23 34
73 30
141 57
229 26
5) SQLite COUNT(*)
med INNER JOIN
klausuleksempel
For at gøre outputtet af ovenstående forespørgsel mere nyttigt, kan du inkludere albummets navnekolonne. For at gøre dette, tilføjer du INNER JOIN
og ORDER BY
klausuler til forespørgslen som følgende forespørgsel:
SELECT
tracks.albumid,
title,
COUNT(*)
FROM
tracks
INNER JOIN albums ON
albums.albumid = tracks.albumid
GROUP BY
tracks.albumid
HAVING
COUNT(*) > 25
ORDER BY
COUNT(*) DESC;
Code language: SQL (Structured Query Language) (sql)
Prøv det
AlbumId Title COUNT(*)
------- -------------- --------
141 Greatest Hits 57
23 Minha Historia 34
73 Unplugged 30
229 Lost, Season 3 26
SQLite COUNT(DISTINCT expression)
eksempler
Lad os tage et kig på employees
tabel fra eksempeldatabasen.
SELECT
employeeid,
lastname,
firstname,
title
FROM
employees;
Code language: SQL (Structured Query Language) (sql)
Prøv det
EmployeeId LastName FirstName Title
---------- -------- --------- -------------------
1 Adams Andrew General Manager
2 Edwards Nancy Sales Manager
3 Peacock Jane Sales Support Agent
4 Park Margaret Sales Support Agent
5 Johnson Steve Sales Support Agent
6 Mitchell Michael IT Manager
7 King Robert IT Staff
8 Callahan Laura IT Staff
For at få antallet af stillingstitler videregiver du title
kolonne til COUNT()
fungerer som følger:
SELECT COUNT(title)
FROM employees;
Code language: SQL (Structured Query Language) (sql)
Prøv det
COUNT(title)
------------
8
For at få antallet af unikke titler skal du dog tilføje DISTINCT
mulighed for COUNT()
fungerer som vist i følgende sætning:
SELECT COUNT(DISTINCT title)
FROM employees;
Code language: SQL (Structured Query Language) (sql)
Prøv det
COUNT(DISTINCT title)
---------------------
5
I denne vejledning har vi vist dig, hvordan du bruger SQLite COUNT()
funktion til at tælle antallet af elementer i en gruppe.