Résumé :dans ce tutoriel, vous apprendrez à utiliser SQLite COUNT
fonction pour obtenir le nombre d'éléments dans un groupe.
Introduction à SQLite COUNT()
fonction
La fonction COUNT()
est une fonction d'agrégation qui renvoie le nombre d'éléments dans un groupe.
Par exemple, vous pouvez utiliser le COUNT()
fonction pour obtenir le nombre de pistes à partir des tracks
tableau, le nombre d'artistes parmi les artists
tableau, etc.
Ce qui suit illustre la syntaxe de base du COUNT
fonction :
COUNT([ALL | DISTINCT] expression);
Code language: SQL (Structured Query Language) (sql)
Argumentation
Le COUNT
fonction se comporte en fonction des arguments que vous lui transmettez et de l'option ALL
ou DISTINCT
que vous spécifiez.
Ce qui suit décrit la signification de ALL
et DISTINCT
option :
ALL
:lorsque vous spécifiez all, leCOUNT()
la fonction compte toutes les valeurs non nulles, y compris les doublons. LeCOUNT()
la fonction utilise leALL
option par défaut si vous l'ignorez.DISTINCT
:si vous utilisez explicitement leDISTINCT
option, leCOUNT
la fonction ne compte que les valeurs uniques et non nulles.
L'expression peut être une colonne ou une expression qui implique des colonnes auxquelles la fonction COUNT()
est appliqué.
SQLite fournit une autre syntaxe du COUNT()
fonction :
COUNT(*)
Code language: SQL (Structured Query Language) (sql)
Le COUNT(*)
La fonction renvoie le nombre de lignes dans une table, y compris les lignes incluant NULL et les doublons.
SQLite COUNT()
illustration de la fonction
Tout d'abord, créez une table appelée t1
qui a une colonne :
CREATE TABLE t1(c INTEGER);
Code language: SQL (Structured Query Language) (sql)
Deuxièmement, insérez cinq lignes dans le t1
tableau :
INSERT INTO t1(c)
VALUES(1),(2),(3),(null),(3);
Code language: SQL (Structured Query Language) (sql)
Troisièmement, interrogez les données du t1
tableau :
SELECT * FROM t1;
Code language: SQL (Structured Query Language) (sql)
Quatrièmement, utilisez le COUNT(*)
fonction pour retourner le nombre de lignes dans le t1
tableau :
SELECT COUNT(*) FROM t1;
Code language: SQL (Structured Query Language) (sql)
Comme vous pouvez le voir clairement à partir de la sortie, le jeu de résultats comprend des lignes NULL et en double.
Cinquièmement, utilisez le COUNT(expression)
pour obtenir le nombre de valeurs non nulles dans la colonne c
:
SELECT COUNT(c) FROM t1;
Code language: SQL (Structured Query Language) (sql)
Dans cet exemple, le COUNT(c)
renvoie le nombre de valeurs non nulles. Il compte les lignes en double comme des lignes distinctes.
Sixièmement, utilisez le COUNT(DISTINCT expression)
pour obtenir le nombre de valeurs uniques et non nulles dans la colonne c
:
SELECT COUNT(DISTINCT c) FROM t1;
Code language: SQL (Structured Query Language) (sql)
SQLite COUNT(*)
exemples
Nous prendrons le tableau tracks
dans l'exemple de base de données pour démontrer la fonctionnalité de COUNT(*)
fonction.
1) SQLite COUNT(*)
exemple
Pour obtenir le nombre de lignes des tracks
table, vous utilisez le COUNT(*)
fonctionnent comme suit :
SELECT count(*)
FROM tracks;
Code language: SQL (Structured Query Language) (sql)
Essayez-le
count(*)
--------
3503
Code language: plaintext (plaintext)
2) SQLite COUNT(*)
avec WHERE
exemple de clause
L'instruction suivante utilise le COUNT(*)
fonction avec un WHERE
clause pour trouver le nombre de pistes dont l'identifiant d'album est 10 :
SELECT COUNT(*)
FROM tracks
WHERE albumid = 10;
Code language: SQL (Structured Query Language) (sql)
Essayez-le
COUNT(*)
--------
14
3) SQLite COUNT(*)
avec GROUP BY
exemple de clause
Pour obtenir tous les albums et le nombre de pistes de chaque album, vous combinez le COUNT(*)
fonction avec le GROUP BY
clause :
SELECT
albumid,
COUNT(*)
FROM
tracks
GROUP BY
albumid;
Code language: SQL (Structured Query Language) (sql)
Essayez-le
AlbumId COUNT(*)
------- --------
1 10
2 1
3 3
4 8
5 15
6 13
7 12
8 14
9 8
10 14
...
Dans cet exemple :
- Tout d'abord, le
GROUP BY
clause regrouper les pistes par identifiant d'album. - Ensuite, le
COUNT(*)
renvoie le nombre de pistes pour chaque album ou groupe de pistes.
4) SQLite COUNT(*)
avec HAVING
exemple de clause
Ce qui suit utilise le COUNT(*)
dans le HAVING
clause pour trouver les albums qui ont plus de 25 titres :
SELECT
albumid,
COUNT(*)
FROM
tracks
GROUP BY
albumid
HAVING COUNT(*) > 25
Code language: SQL (Structured Query Language) (sql)
Essayez-le
AlbumId COUNT(*)
------- --------
23 34
73 30
141 57
229 26
5) SQLite COUNT(*)
avec INNER JOIN
exemple de clause
Afin de rendre la sortie de la requête ci-dessus plus utile, vous pouvez inclure la colonne du nom de l'album. Pour ce faire, vous ajoutez INNER JOIN
et ORDER BY
clauses à la requête comme la requête suivante :
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)
Essayez-le
AlbumId Title COUNT(*)
------- -------------- --------
141 Greatest Hits 57
23 Minha Historia 34
73 Unplugged 30
229 Lost, Season 3 26
SQLite COUNT(DISTINCT expression)
exemples
Jetons un coup d'œil aux employees
table de l'exemple de base de données.
SELECT
employeeid,
lastname,
firstname,
title
FROM
employees;
Code language: SQL (Structured Query Language) (sql)
Essayez-le
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
Pour obtenir le nombre de titres de poste, vous passez le title
colonne au COUNT()
fonctionnent comme suit :
SELECT COUNT(title)
FROM employees;
Code language: SQL (Structured Query Language) (sql)
Essayez-le
COUNT(title)
------------
8
Cependant, pour obtenir le nombre de titres uniques, vous devez ajouter le DISTINCT
option à COUNT()
fonction comme indiqué dans l'instruction suivante :
SELECT COUNT(DISTINCT title)
FROM employees;
Code language: SQL (Structured Query Language) (sql)
Essayez-le
COUNT(DISTINCT title)
---------------------
5
Dans ce tutoriel, nous vous avons montré comment utiliser SQLite COUNT()
fonction pour compter le nombre d'éléments dans un groupe.