Aggregate

APPROX_COUNT_DISTINCT

BigQueryBigQuery

Menghitung perkiraan jumlah nilai unik (distinct) dengan algoritma HyperLogLog++. Jauh lebih cepat dan hemat resource dibanding COUNT(DISTINCT) untuk dataset besar.

Tipe hasil: INT64Diperbarui: 7 Jan 2026

Syntax

SQL
APPROX_COUNT_DISTINCT(expression)

Parameter

expressionanywajib

Kolom atau ekspresi yang akan dihitung nilai uniknya

Contoh Penggunaan

Perkiraan Unique Visitors

SQL
1SELECT
2 APPROX_COUNT_DISTINCT(user_id) as approx_unique_users,
3 COUNT(DISTINCT user_id) as exact_unique_users
4FROM `project.dataset.page_views`
5WHERE DATE(timestamp) = '2024-06-25';

Membandingkan approximate vs exact count untuk unique users.

Hasil
approx_unique_usersexact_unique_users
15238471525000

Daily Unique Users dengan APPROX

SQL
1SELECT
2 DATE(timestamp) as date,
3 APPROX_COUNT_DISTINCT(user_id) as daily_unique_users
4FROM `project.dataset.events`
5WHERE timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY)
6GROUP BY date
7ORDER BY date DESC;

Menghitung unique users harian dengan efisien.

Hasil
datedaily_unique_users
2024-06-25125000
2024-06-24118500
2024-06-23132000

Multiple Approximate Counts

SQL
1SELECT
2 country,
3 APPROX_COUNT_DISTINCT(user_id) as unique_users,
4 APPROX_COUNT_DISTINCT(session_id) as unique_sessions,
5 APPROX_COUNT_DISTINCT(device_id) as unique_devices
6FROM `project.dataset.analytics`
7GROUP BY country
8ORDER BY unique_users DESC
9LIMIT 10;

Multiple approximate counts per negara.

Hasil
countryunique_usersunique_sessionsunique_devices
Indonesia250000087500001850000
Malaysia4500001575000380000
Singapore3200001120000290000

Perbandingan Performance

SQL
1-- Query ini bisa 10-100x lebih cepat dari COUNT(DISTINCT)
2-- untuk tabel dengan miliaran rows
3SELECT
4 APPROX_COUNT_DISTINCT(customer_id) as unique_customers,
5 APPROX_COUNT_DISTINCT(product_id) as unique_products,
6 APPROX_COUNT_DISTINCT(CONCAT(customer_id, '-', product_id)) as unique_pairs
7FROM `project.dataset.transactions`
8WHERE EXTRACT(YEAR FROM transaction_date) = 2024;

Multiple approximate counts pada dataset besar.

Hasil
unique_customersunique_productsunique_pairs
520000012500045000000