SQLite
 sql >> Base de données >  >> RDS >> SQLite

SQLite COUNT

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, le COUNT() la fonction compte toutes les valeurs non nulles, y compris les doublons. Le COUNT() la fonction utilise le ALL option par défaut si vous l'ignorez.
  • DISTINCT :si vous utilisez explicitement le DISTINCT option, le COUNT 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(*)
--------
3503Code 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(*) > 25Code 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.