Résumé : dans ce tutoriel, vous apprendrez à utiliser la fonction COUNT()
de PostgreSQL pour compter le nombre de lignes dans une table.
Synthèse de la fonction COUNT() de PostgreSQL
La fonction COUNT()
est une fonction agrégée qui vous permet d’obtenir le nombre de lignes qui correspondent à une condition spécifique d’une requête.
L’instruction suivante illustre diverses façons d’utiliser la fonction COUNT()
.
COUNT(*)
La fonction COUNT(*)
renvoie le nombre de lignes retournées par une instruction SELECT
, y compris les NULL et les doublons.
Code language: SQL (Structured Query Language) (sql)
Lorsque vous appliquez la fonction COUNT(*)
à la table entière, PostgreSQL doit balayer toute la table de manière séquentielle.
Si vous utilisez la fonction COUNT(*)
sur une grande table, la requête sera lente. Ceci est lié à l’implémentation MVCC de PostgreSQL. Parce que plusieurs transactions voient différents états de données en même temps, il n’y a pas de moyen direct pour la fonction COUNT(*)
de compter sur toute la table, donc PostgreSQL doit scanner toutes les lignes.
COUNT(colonne)
Similaire à la fonction COUNT(*)
, la fonction COUNT(column)
renvoie le nombre de lignes retournées par une clause SELECT
. Cependant, elle ne tient pas compte des valeurs NULL
dans la column
.
Code language: SQL (Structured Query Language) (sql)
COUNT(DISTINCT colonne)
Dans cette forme, la COUNT(DISTINCT column)
renvoie le nombre de valeurs uniques non nulles dans la column.
Code language: SQL (Structured Query Language) (sql)
Nous utilisons souvent la fonction COUNT()
avec la clause GROUP BY
pour renvoyer le nombre d’éléments pour chaque groupe. Par exemple, nous pouvons utiliser la fonction COUNT()
avec la clause GROUP BY
pour retourner le nombre de films dans chaque catégorie de films.
Exemples de la fonction COUNT() de PostgreSQL
Utilisons la table payment
de la base de données exemple pour la démonstration.
1) Exemple de la fonction PostgreSQL COUNT(*)
L’instruction suivante utilise la fonction COUNT(*)
pour retourner le nombre de transactions dans la table payment
:
Code language: SQL (Structured Query Language) (sql)
Voici la sortie :
2) Exemple de COUNT(DISTINCT colonne) PostgreSQL
Pour obtenir les montants distincts que les clients ont payés, vous utilisez la fonction COUNT(DISTINCT amount)
comme le montre l’exemple suivant :
Code language: SQL (Structured Query Language) (sql)
PostgreSQL COUNT() avec clause GROUP BY
Pour obtenir le nombre de paiements par le client, vous utilisez la clause GROUP BY
pour regrouper les paiements en groupes basés sur l’id du client, et utilisez la fonction COUNT()
pour compter les paiements pour chaque groupe.
La requête suivante illustre l’idée:
Code language: SQL (Structured Query Language) (sql)
Voici la sortie partielle:
PostgreSQL COUNT() avec clause HAVING
Vous pouvez utiliser la fonction COUNT
dans une clause HAVING
pour appliquer une condition spécifique aux groupes. Par exemple, l’instruction suivante trouve les clients qui ont effectué plus de 40 paiements :
Code language: SQL (Structured Query Language) (sql)
Dans ce tutoriel, vous avez appris à utiliser la fonction COUNT()
de PostgreSQL pour renvoyer le nombre de lignes dans une table.
- Ce tutoriel a-t-il été utile ?
- OuiNon
.