La fonction HLL_COUNT_EXTRACT calcule une estimation de la cardinalité à partir d'une structure de données HLL++ (sketch).
Notes
HLL_COUNT_EXTRACT/HLL_COUNT_MERGE/HLL_COUNT_MERGE_PARTIAL Les données BINARY utilisées par ces fonctions doivent provenir de la fonction HLL_COUNT_INIT et ne peuvent pas être issues d'autres systèmes ou méthodes.
Syntaxe
BIGINT HLL_COUNT_EXTRACT(BINARY <sketch>)
Paramètres
sketch : Obligatoire. Une valeur BINARY représentant le sketch HLL++. Ce sketch doit être généré par la fonction HLL_COUNT_INIT.
Valeur renvoyée
Renvoie l'estimation de la cardinalité sous forme de BIGINT. Si le paramètre sketch en entrée est NULL, cette fonction renvoie 0.
Exemples
Interrogez le nombre de clients distincts dans chaque pays qui possèdent au moins une facture.
SELECT
country,
HLL_COUNT_EXTRACT(HLL_sketch) AS distinct_customers_with_open_invoice
FROM
(
SELECT
country,
HLL_COUNT_INIT(customer_id) AS hll_sketch
FROM values
('UA', 'customer_id_1', 'invoice_id_11'),
('BR', 'customer_id_3', 'invoice_id_31'),
('CZ', 'customer_id_2', 'invoice_id_22'),
('CZ', 'customer_id_2', 'invoice_id_23'),
('BR', 'customer_id_3', 'invoice_id_31'),
('UA', 'customer_id_2', 'invoice_id_24')
t(country, customer_id, invoice_id)
GROUP BY country
);
La requête renvoie le résultat suivant :
+---------+--------------------------------------+
| country | distinct_customers_with_open_invoice |
+---------+--------------------------------------+
| BR | 1 |
| CZ | 1 |
| UA | 2 |
+---------+--------------------------------------+
Fonctions associées
HLL_COUNT_EXTRACT fait partie des plusieurs fonctions HyperLogLog++ que MaxCompute met à disposition pour l'agrégation approximative. Pour plus d'informations, consultez la rubrique Présentation des fonctions HyperLogLog++.