Przejdź do głównej zawartości

Szacuje liczbę unikatowych wartości w zbiorze danych za pomocą algorytmu HyperLogLog.

Algorytm HyperLogLog zapewnia przybliżenie liczby unikatowych elementów przy niewielkim zużyciu pamięci i czasu. Warto użyć tej funkcji przy dużych zbiorach danych, gdy akceptowalny jest wynik szacunkowy. Kosztem pewnej dokładności jest to szybka i wydajna metoda zwracania liczby unikatowych wartości.

Aby uzyskać dokładny wynik, użyj funkcji COUNT_DISTINCT. Dodatkowe wyjaśnienia znajdziesz w sekcji Przykłady.

func.approx_count_distinct(<expr>)
func.approx_count_distinct(table.user_id).alias('approx_distinct_user_count')
| approx_distinct_user_count |
|----------------------------|
| 4 |
APPROX_COUNT_DISTINCT(<expr>)

Liczba całkowita.

Tworzenie tabeli i wstawianie przykładowych danych

CREATE TABLE user_events (
id INT,
user_id INT,
event_name VARCHAR
);
INSERT INTO user_events (id, user_id, event_name)
VALUES (1, 1, 'Login'),
(2, 2, 'Login'),
(3, 3, 'Login'),
(4, 1, 'Logout'),
(5, 2, 'Logout'),
(6, 4, 'Login'),
(7, 1, 'Login');

Przykład zapytania: oszacowanie liczby unikatowych identyfikatorów użytkowników

SELECT APPROX_COUNT_DISTINCT(user_id) AS approx_distinct_user_count
FROM user_events;

Wynik

| approx_distinct_user_count |
|----------------------------|
| 4 |