A função HLL_COUNT_EXTRACT calcula uma estimativa de cardinalidade a partir de uma estrutura de dados HLL++ (sketch).
Observações
HLL_COUNT_EXTRACT/HLL_COUNT_MERGE/HLL_COUNT_MERGE_PARTIAL Os dados BINARY usados por essas funções devem vir da função HLL_COUNT_INIT. Não é possível utilizar dados de outros sistemas ou métodos.
Sintaxe
BIGINT HLL_COUNT_EXTRACT(BINARY <sketch>)
Parâmetros
sketch: Obrigatório. Valor BINARY que representa o sketch HLL++. A função HLL_COUNT_INIT deve gerar esse sketch.
Valor de retorno
Retorna a estimativa de cardinalidade como BIGINT. Se o sketch de entrada for NULL, a função retornará 0.
Exemplos
Selecione o número de clientes distintos por país com pelo menos uma fatura.
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
);
A consulta retorna o seguinte resultado:
+---------+--------------------------------------+
| country | distinct_customers_with_open_invoice |
+---------+--------------------------------------+
| BR | 1 |
| CZ | 1 |
| UA | 2 |
+---------+--------------------------------------+
Funções relacionadas
O MaxCompute oferece a HLL_COUNT_EXTRACT e outras funções HyperLogLog++ para agregação aproximada. Para mais informações, consulte HyperLogLog++ Functions Overview.