Cours
Exécutez et modifiez le code de ce tutoriel en ligne
Exécuter le codeQu'est-ce que la COUNT()
fonction ?
La fonction COUNT()
renvoie le nombre de lignes correspondant à un critère.
COUNT()
syntax
La syntaxe de base de COUNT()
est la suivante.
SELECT COUNT(column_name)
FROM table_name;
Les variations de la syntaxe permettent d'atteindre des objectifs différents.
- La syntaxe
COUNT(*)
nous permet de compter le nombre de lignes d'un tableau - La syntaxe
COUNT(DISTINCT column)
nous permet de compter le nombre de valeurs distinctes dans une colonne - La syntaxe
COUNT(CASE WHEN condition THEN column END)
nous permet de compter le nombre de valeurs qui remplissent les conditions.
COUNT()
utilisée avec GROUP BY
, est utile pour compter le nombre de lignes appartenant à chaque groupe.
COUNT()
utilisée avec HAVING
, est utile pour filtrer les groupes en fonction du nombre de lignes qu'ils contiennent.
Nous allons les illustrer à l'aide des exemples ci-dessous.
COUNT()
exemples
Exemple 1 : Compter le nombre de lignes avec COUNT(*)
Le tableau intitulé "Produits" contient tous les produits vendus par une entreprise. La clause COUNT(*)
permet de calculer le nombre de tableaux.
SELECT
COUNT(*) AS number_of_rows
FROM products
|
321 |
Exemple 2 : Compter les valeurs uniques avec COUNT(DISTINCT …)
La syntaxe COUNT(DISTINCT column)
nous permet de compter le nombre de valeurs uniques dans une colonne.
Par exemple, chaque produit est associé à une marque dans le tableau products
. Nous pouvons compter le nombre de produits et de marques uniques dans le tableau.
SELECT
COUNT(DISTINCT product_id) AS unique_product_count,
COUNT(DISTINCT brand_id) AS unique_brand_count
FROM products
|
|
321 |
9 |
Amélioration de SQL pour les débutants
Exemple 3 : Comptez les lignes qui correspondent à une condition en utilisant COUNT()
avec CASE WHEN
La syntaxe COUNT(CASE WHEN condition THEN column END)
nous permet de calculer le nombre de lignes qui correspondent à une condition.
Par exemple, dans le tableau des produits, chaque produit possède une adresse list_price
. Nous pouvons calculer combien de produits sont "expensive
" (ayant un prix catalogue de plus de 500 $) ou non.
SELECT
COUNT(CASE WHEN list_price >= 500 THEN product_id END) AS expensive_product_count,
COUNT(CASE WHEN list_price < 500 THEN product_id END) AS cheap_product_count
FROM products
|
|
213 |
108 |
Exemple 4 : Comptez les lignes par groupes en utilisant COUNT()
avec GROUP BY
COUNT()
peut être utilisé avec GROUP BY
pour trouver le nombre de lignes dans chaque groupe.
Par exemple, le tableau des produits contient les modèles de vélos de 2016 à 2019. Pour connaître la distribution de la bicyclette, nous pouvons utiliser COUNT(product_id)
et GROUP BY model_year
pour compter le nombre de produits de chaque année.
SELECT
model_year,
COUNT(product_id) AS product_count
FROM products
GROUP BY model_year
|
|
2016 |
26 |
2017 |
85 |
2018 |
204 |
2019 |
6 |
Exemple 5 : Filtrer les groupes à l'aide de COUNT()
avec GROUP BY
et HAVING
Dans l'exemple 4, nous voyons que COUNT()
peut être utilisé avec GROUP BY
. Nous pouvons utiliser l'instruction HAVING
pour filtrer les groupes en utilisant le nombre de lignes dans ce groupe.
Par exemple, pour trouver le nombre d'années qui ont moins de 50 produits, nous pouvons utiliser la syntaxe suivante.
SELECT
model_year
FROM products
GROUP BY model_year
HAVING COUNT(product_id) < 50
|
2016 |
2019 |
Exigences techniques
COUNT()
est une fonction disponible dans toutes les versions de SQL moderne.