Calcul du nombre de valeurs distinctes¶
Pour calculer le nombre de lignes qui ont des valeurs distinctes, vous pouvez utiliser l’une des approches suivantes :
Appelez la fonction SQL COUNT avec le mot-clé
DISTINCT
.Si vous avez simplement besoin d’un comptage approximatif de valeurs distinctes, vous pouvez utiliser les fonctions HyperLogLog (par exemple
APPROX_COUNT_DISTINCT
). Pour plus de détails, voir Le nombre de valeurs distinctes..Si vous comptez des valeurs distinctes pour des agrégations hiérarchiques (par exemple, des ensembles de groupements multiples, des rollups ou des cubes), vous pouvez améliorer les performances en utilisant l’une des approches suivantes (plutôt que d’utiliser
COUNT(DISTINCT <expr>)
) :Utilisez des bitmaps pour identifier le nombre de valeurs distinctes.
Avec cette approche, vous utilisez les fonctions bitmap pour produire des bitmaps qui identifient les valeurs entières distinctes d’une colonne. Étant donné qu’un bitmap peut représenter au maximum 32 768 valeurs distinctes, cette approche nécessite une « mise en compartiment » (en utilisant plusieurs bitmaps) si le nombre de valeurs distinctes dépasse 32 768.
Pour plus de détails, voir Utilisation de bitmaps pour calculer des valeurs distinctes pour les agrégations hiérarchiques.
Produisez des tableaux qui contiennent les valeurs distinctes.
Avec cette approche, vous utilisez les fonctions d’agrégation qui produisent des tableaux contenant les valeurs uniques d’une colonne. Vous pouvez ensuite appeler ARRAY_SIZE pour obtenir le nombre de valeurs.
Cette approche fonctionne pour les valeurs de n’importe quel type de données (par exemple VARIANT) et ne nécessite pas de « mise en compartiment », sauf si la taille des données dans l’ARRAY dépasse la taille maximale d’un ARRAY.
Pour plus de détails, voir Utilisation de tableaux pour calculer des valeurs distinctes pour les agrégations hiérarchiques.
Chapitres suivants :