Sammanfattning :i denna handledning kommer du att lära dig hur du använder SQLite COUNT
funktion för att få antalet objekt i en grupp.
Introduktion till SQLite COUNT()
funktion
Funktionen COUNT()
är en aggregatfunktion som returnerar antalet objekt i en grupp.
Du kan till exempel använda COUNT()
funktion för att få antalet spår från tracks
tabellen, antalet artister från artists
bord och så vidare.
Följande illustrerar den grundläggande syntaxen för COUNT
funktion:
COUNT([ALL | DISTINCT] expression);
Code language: SQL (Structured Query Language) (sql)
Argument
COUNT
funktion beter sig enligt de argument som du skickar in i den och alternativet ALL
eller DISTINCT
som du anger.
Följande beskriver betydelsen av ALL
och DISTINCT
alternativ:
ALL
:när du anger alla,COUNT()
funktion räknar alla icke-nullvärden inkluderar dubbletter.COUNT()
funktionen använderALL
alternativet som standard om du hoppar över det.DISTINCT
:om du uttryckligen använderDISTINCT
alternativet,COUNT
funktion räknar endast unika och icke-nullvärden.
Uttrycket kan vara en kolumn eller ett uttryck som involverar kolumner till vilka funktionen COUNT()
tillämpas.
SQLite tillhandahåller en annan syntax för COUNT()
funktion:
COUNT(*)
Code language: SQL (Structured Query Language) (sql)
COUNT(*)
funktion returnerar antalet rader i en tabell, inklusive raderna inklusive NULL och dubbletter.
SQLite COUNT()
funktionsillustration
Skapa först en tabell som heter t1
som har en kolumn:
CREATE TABLE t1(c INTEGER);
Code language: SQL (Structured Query Language) (sql)
För det andra, infoga fem rader i t1
tabell:
INSERT INTO t1(c)
VALUES(1),(2),(3),(null),(3);
Code language: SQL (Structured Query Language) (sql)
För det tredje, fråga efter data från t1
tabell:
SELECT * FROM t1;
Code language: SQL (Structured Query Language) (sql)
För det fjärde, använd COUNT(*)
funktion för att returnera antalet rader i t1
tabell:
SELECT COUNT(*) FROM t1;
Code language: SQL (Structured Query Language) (sql)
Som du tydligt kan se från resultatet innehåller resultatuppsättningen NULL och dubbletter av rader.
För det femte, använd COUNT(expression)
för att få antalet icke-nullvärden i kolumnen c
:
SELECT COUNT(c) FROM t1;
Code language: SQL (Structured Query Language) (sql)
I det här exemplet är COUNT(c)
returnerar antalet icke-nullvärden. Den räknar dubblettraderna som separata rader.
För det sjätte, använd COUNT(DISTINCT expression)
för att få antalet unika och icke-nullvärden i kolumn c
:
SELECT COUNT(DISTINCT c) FROM t1;
Code language: SQL (Structured Query Language) (sql)
SQLite COUNT(*)
exempel
Vi tar tabellen tracks
i exempeldatabasen för att demonstrera funktionen hos COUNT(*)
funktion.
1) SQLite COUNT(*)
exempel
För att få antalet rader från tracks
tabell använder du COUNT(*)
fungerar enligt följande:
SELECT count(*)
FROM tracks;
Code language: SQL (Structured Query Language) (sql)
Prova det
count(*)
--------
3503
Code language: plaintext (plaintext)
2) SQLite COUNT(*)
med WHERE
klausulexempel
Följande sats använder COUNT(*)
funktion med en WHERE
klausul för att hitta antalet spår vars album-id är 10:
SELECT COUNT(*)
FROM tracks
WHERE albumid = 10;
Code language: SQL (Structured Query Language) (sql)
Prova det
COUNT(*)
--------
14
3) SQLite COUNT(*)
med GROUP BY
klausulexempel
För att få alla album och antalet spår i varje album, kombinerar du COUNT(*)
funktion med GROUP BY
klausul:
SELECT
albumid,
COUNT(*)
FROM
tracks
GROUP BY
albumid;
Code language: SQL (Structured Query Language) (sql)
Prova det
AlbumId COUNT(*)
------- --------
1 10
2 1
3 3
4 8
5 15
6 13
7 12
8 14
9 8
10 14
...
I det här exemplet:
- Först,
GROUP BY
klausul gruppera spår efter album-id. - Sedan,
COUNT(*)
funktionen returnerar antalet spår för varje album eller grupp av spår.
4) SQLite COUNT(*)
med HAVING
klausulexempel
Följande använder COUNT(*)
i HAVING
klausul för att hitta album som har fler än 25 spår:
SELECT
albumid,
COUNT(*)
FROM
tracks
GROUP BY
albumid
HAVING COUNT(*) > 25
Code language: SQL (Structured Query Language) (sql)
Prova det
AlbumId COUNT(*)
------- --------
23 34
73 30
141 57
229 26
5) SQLite COUNT(*)
med INNER JOIN
klausulexempel
För att göra utdata från ovanstående fråga mer användbar kan du inkludera albumets namnkolumn. För att göra detta lägger du till INNER JOIN
och ORDER BY
satser till frågan som följande fråga:
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)
Prova det
AlbumId Title COUNT(*)
------- -------------- --------
141 Greatest Hits 57
23 Minha Historia 34
73 Unplugged 30
229 Lost, Season 3 26
SQLite COUNT(DISTINCT expression)
exempel
Låt oss ta en titt på employees
tabell från exempeldatabasen.
SELECT
employeeid,
lastname,
firstname,
title
FROM
employees;
Code language: SQL (Structured Query Language) (sql)
Prova 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
För att få antalet positionstitlar skickar du title
kolumnen till COUNT()
fungerar enligt följande:
SELECT COUNT(title)
FROM employees;
Code language: SQL (Structured Query Language) (sql)
Prova det
COUNT(title)
------------
8
Men för att få antalet unika titlar måste du lägga till DISTINCT
alternativet till COUNT()
fungerar som visas i följande uttalande:
SELECT COUNT(DISTINCT title)
FROM employees;
Code language: SQL (Structured Query Language) (sql)
Prova det
COUNT(DISTINCT title)
---------------------
5
I den här handledningen har vi visat dig hur du använder SQLite COUNT()
funktion för att räkna antalet objekt i en grupp.