APPROX_COUNT_DISTINCT |
Compteur distinct approximatif |
| BigQuery |
Syntaxe
|
APPROX_COUNT_DISTINCT(expression)
|
Paramètres
| Nom |
Description |
| expression |
Ce paramètre permet de spécifier l'expression ou la colonne dont on souhaite compter approximativement le nombre de valeurs distinctes dans l'ensemble de données. |
Description
Cette fonction permet de demander le résultat approximatif de «COUNT(DISTINCT expression)» et de retourner une estimation statistique.
Remarques
- La fonction APPROX_COUNT_DISTINCT permet d'obtenir une estimation rapide du nombre de valeurs distinctes dans un ensemble de données : Elle est
particulièrement utile lorsque les volumes de données sont très grands, car elle consomme moins de mémoire et de ressources que la version exacte
COUNT(DISTINCT expression).
- Cette fonction repose sur des algorithmes de type HyperLogLog, qui permettent une estimation probabiliste avec une marge d'erreur contrôlée : L'objectif est
d'équilibrer précision et performance, ce qui en fait un bon choix pour les analyses exploratoires, les tableaux de bord ou les rapports en temps réel.
- Le résultat retourné par APPROX_COUNT_DISTINCT est une estimation, ce qui signifie qu'il peut légèrement varier entre différentes exécutions : Même si la
marge d'erreur est généralement faible (souvent autour de 2 %), ce n'est pas une méthode à utiliser dans des contextes où la précision absolue est requise (comme des audits
ou de la facturation).
- La fonction est beaucoup plus performante que COUNT(DISTINCT ...) sur les grands ensembles de données non agrégés : Elle permet de faire des déductions
rapides sur la cardinalité d'un champ sans imposer une charge importante sur les ressources de calcul. C'est un atout majeur dans les environnements distribués ou sur les
flux de données massifs.
- APPROX_COUNT_DISTINCT est insensible à l'ordre des données et peut être utilisée sans clause GROUP BY, ou en tant que fonction d'agrégation classique : Elle
est compatible avec des requêtes de synthèse à grande échelle, y compris dans des partitions, des sous-requêtes ou des tables dérivées.
- En cas de besoin d'une estimation groupée, on peut combiner APPROX_COUNT_DISTINCT avec GROUP BY pour obtenir des approximations par catégorie : Par
exemple : SELECT region, APPROX_COUNT_DISTINCT(user_id) FROM ventes GROUP BY region; fournit un nombre approximatif d'utilisateurs distincts par région, avec des
performances élevées.
- Cette fonction retourne NULL si toutes les valeurs de l'expression sont NULL : Cela suit la logique des fonctions d'agrégation en SQL, et doit
être pris en compte dans les visualisations ou rapports où un résultat numérique est attendu. Une fonction comme IFNULL(..., 0) peut alors être utilisée.
- APPROX_COUNT_DISTINCT peut être intégrée dans des requêtes analytiques ou des vues matérialisées pour optimiser les temps de réponse : Sa nature
approximative en fait une solution idéale pour le pré-calcul d'indicateurs dans des rapports BI, où le besoin de vitesse prime sur l'exactitude absolue.
Dernière mise à jour : Jeudi, le 18 Juin 2020