APPROX_TOP_COUNT |
Compteur du haut approximatif |
| BigQuery |
Syntaxe
|
APPROX_TOP_COUNT(expression, number)
|
Paramètres
| Nom |
Description |
| expression |
Ce paramètre permet de spécifier l'expression pour laquelle on souhaite obtenir la liste des premiers éléments approximatifs. |
| number |
Ce paramètre permet de définir le nombre d'éléments du "top" que l'on souhaite récupérer. |
Description
Cette fonction permet de demander la liste des premiers éléments approximatifs de l'expression spécifié.
Remarques
- La fonction APPROX_TOP_COUNT permet d'identifier les éléments les plus fréquents dans un ensemble de données, de manière approximative : Elle retourne
les éléments les plus courants (selon le champ spécifié) ainsi qu'une estimation de leur fréquence, ce qui est particulièrement utile pour explorer rapidement des
tendances dominantes.
- Le résultat de APPROX_TOP_COUNT est un tableau de structures (ARRAY<STRUCT<value, count>>), où chaque structure contient un élément distinct et une
estimation de sa fréquence : Il est donc nécessaire d'utiliser UNNEST() pour parcourir ou manipuler les résultats dans des requêtes SQL classiques.
- Le paramètre number définit combien d'éléments du "top" on souhaite extraire, mais il s'agit d'un maximum et non d'un nombre garanti : Par exemple,
si le nombre de valeurs dominantes est inférieur à number, le tableau contiendra moins d'éléments. De plus, à cause de l'approximation, il peut y avoir des
variations entre exécutions.
- Cette fonction est particulièrement performante sur de très grands ensembles de données, car elle repose sur des algorithmes probabilistes tels que les
"Heavy Hitters" : Elle permet donc d'obtenir un aperçu très rapide des valeurs les plus fréquentes sans nécessiter un tri ou un regroupement complet des
données.
- Comme son nom l'indique, APPROX_TOP_COUNT fournit une estimation, ce qui signifie que les résultats peuvent être légèrement inexacts : Ce compromis entre
précision et performance est acceptable dans les cas d'analyse exploratoire ou de génération de rapports dynamiques, mais pas pour des calculs critiques ou des audits.
- Contrairement à un GROUP BY suivi d'un ORDER BY COUNT(*) DESC, cette fonction évite de trier toute la table, ce qui la rend bien plus rapide sur des
milliards de lignes : Elle est idéale pour extraire les produits les plus vendus, les mots les plus fréquents ou les utilisateurs les plus actifs, de manière
fluide et mise à l'échelle.
- Cette fonction peut être sensible aux données bruitées ou aux ex æquo, notamment lorsque plusieurs valeurs ont des fréquences similaires : Dans ces cas,
certaines valeurs proches du seuil peuvent apparaître ou disparaître dans les résultats selon l'ordre ou l'échantillonnage, car l'algorithme ne garantit pas une
inclusion parfaite de tous les cas limites.
- APPROX_TOP_COUNT est souvent utilisée conjointement avec des filtres ou des regroupements pour cibler des sous-ensembles précis : Par exemple, on peut
combiner avec GROUP BY région pour obtenir le top des produits vendus par région, en encapsulant la fonction dans une sous-requête ou une expression analytique.
Dernière mise à jour : Jeudi, le 18 Juin 2020