Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
La fonction COUNT compte les lignes définies par l’expression.
La fonction COUNT présente les variantes suivantes.
COUNT (*) compte toutes les lignes de la table cible, qu’elles comprennent des valeurs null ou non.
COUNT ( expression ) calcule le nombre de lignes avec des valeurs non NULL dans une colonne ou une expression spécifique.
COUNT ( DISTINCT expression ) calcule le nombre de valeurs non NULL distinctes dans une colonne ou une expression.
APPROXIMATE COUNT DISTINCT donne une approximation du nombre de valeurs distinctes non NULL dans une colonne ou une expression.
Syntaxe
COUNT( * | expression )
COUNT ( [ DISTINCT | ALL ] expression )
APPROXIMATE COUNT ( DISTINCT expression )
Arguments
- expression
-
Colonne cible ou expression sur laquelle la fonction opère. La fonction COUNT prend en charge tous les types de données d’argument.
- DISTINCT | ALL
-
Avec l’argument DISTINCT, la fonction supprime toutes les valeurs en double dans l’expression spécifiée avant d’effectuer le compte. Avec l’argument ALL, la fonction conserve toutes les valeurs en double de l’expression pour le compte. La valeur par défaut est ALL.
- APPROXIMATE
-
Lorsqu'elle est utilisée avec APPROXIMATE, une fonction COUNT DISTINCT utilise un HyperLogLog algorithme pour estimer le nombre de valeurs distinctes non NULL dans une colonne ou une expression. Les requêtes qui utilisent le mot clé APPROXIMATE s’exécutent beaucoup plus rapidement, avec une erreur relative faible d’environ 2 %. L’approximation est garantie pour les requêtes qui renvoient un grand nombre de valeurs distinctes (par millions ou plus encore) par requête, ou par groupe, en cas de clause GROUP BY. Pour les ensembles plus petits de valeurs distinctes (par milliers), l’approximation peut être plus lente qu’un compte précis. La fonction APPROXIMATE peut être utilisée uniquement avec COUNT DISTINCT.
Type de retour
La fonction COUNT renvoie BIGINT.
Exemples
Pour compter tous les utilisateurs de l’état de Floride :
select count(*) from users where state='FL';
count
-------
510
Comptez tous les noms d’événements de la table EVENT :
select count(eventname) from event;
count
-------
8798
Comptez tous les noms d’événements de la table EVENT :
select count(all eventname) from event;
count
-------
8798
Comptez tous les lieux uniques dans le tableau IDs des ÉVÉNEMENTS :
select count(distinct venueid) as venues from event;
venues
--------
204
Pour compter le nombre de fois où chaque vendeur a répertorié des lots de plus de quatre billets en vente. Pour regrouper les résultats de l’ID du vendeur :
select count(*), sellerid from listing
where numtickets > 4
group by sellerid
order by 1 desc, 2;
count | sellerid
------+----------
12 | 6386
11 | 17304
11 | 20123
11 | 25428
...
Les exemples suivants comparent les valeurs de retour et les durées d’exécution de COUNT et de APPROXIMATE COUNT.
select count(distinct pricepaid) from sales;
count
-------
4528
Time: 48.048 ms
select approximate count(distinct pricepaid) from sales;
count
-------
4553
Time: 21.728 ms