A função HLL_COUNT_MERGE_PARTIAL aceita um ou mais sketches HyperLogLog++ (HLL++) como entrada e mescla os sketches com a mesma classe de armazenamento em um novo 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 e não podem ser originados de outros sistemas ou métodos.
Sintaxe
BINARY HLL_COUNT_MERGE_PARTIAL(BINARY <sketch>)
Parâmetros
sketch: Obrigatório. Valor BINARY que representa um sketch HLL++ gerado pela função HLL_COUNT_INIT.
Todos os valores de sketch de entrada devem ser inicializados com o mesmo tipo de dado. O sistema retorna um erro ao tentar mesclar sketches de tipos diferentes. Por exemplo, não é possível mesclar sketches gerados a partir de dados BIGINT com sketches gerados a partir de dados STRING.
Ao mesclar objetos sketch com precisões distintas, a precisão é reduzida para o menor valor entre os sketches mesclados. Por exemplo, se você mesclar objetos sketch com precisões 14 e 15, o resultado será um novo sketch com precisão 14.
Valor de retorno
Retorna um novo sketch do tipo BINARY. Se a entrada for NULL, o valor retornado será NULL.
Exemplo
A consulta a seguir retorna um sketch HLL++ que conta o número de usuários distintos com pelo menos uma fatura em todos os países.
SELECT HLL_COUNT_MERGE_PARTIAL(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
);
O seguinte resultado é retornado:
+--------------------------------------+
| distinct_customers_with_open_invoice |
+--------------------------------------+
| =02=01=0F=00=03=00=00=00=20s=8E=00=F0=8B=DD=00=98_$=03 |
+--------------------------------------+
Funções relacionadas
HLL_COUNT_MERGE_PARTIAL é uma função HyperLogLog++. O MaxCompute oferece uma série de funções HyperLogLog++ para agregação aproximada. Para mais informações, consulte HyperLogLog++ Functions Overview.