Aggregate
BigQuery
APPROX_COUNT_DISTINCT
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 2026Syntax
SQL
APPROX_COUNT_DISTINCT(expression)Parameter
expressionanywajib
Kolom atau ekspresi yang akan dihitung nilai uniknya
Contoh Penggunaan
Perkiraan Unique Visitors
SQL
1 SELECT 2 APPROX_COUNT_DISTINCT(user_id) as approx_unique_users, 3 COUNT(DISTINCT user_id) as exact_unique_users 4 FROM `project.dataset.page_views` 5 WHERE DATE(timestamp) = '2024-06-25';
Membandingkan approximate vs exact count untuk unique users.
Hasil
| approx_unique_users | exact_unique_users |
|---|---|
| 1523847 | 1525000 |
Daily Unique Users dengan APPROX
SQL
1 SELECT 2 DATE(timestamp) as date, 3 APPROX_COUNT_DISTINCT(user_id) as daily_unique_users 4 FROM `project.dataset.events` 5 WHERE timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY) 6 GROUP BY date 7 ORDER BY date DESC;
Menghitung unique users harian dengan efisien.
Hasil
| date | daily_unique_users |
|---|---|
| 2024-06-25 | 125000 |
| 2024-06-24 | 118500 |
| 2024-06-23 | 132000 |
Multiple Approximate Counts
SQL
1 SELECT 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 6 FROM `project.dataset.analytics` 7 GROUP BY country 8 ORDER BY unique_users DESC 9 LIMIT 10;
Multiple approximate counts per negara.
Hasil
| country | unique_users | unique_sessions | unique_devices |
|---|---|---|---|
| Indonesia | 2500000 | 8750000 | 1850000 |
| Malaysia | 450000 | 1575000 | 380000 |
| Singapore | 320000 | 1120000 | 290000 |
Perbandingan Performance
SQL
1 -- Query ini bisa 10-100x lebih cepat dari COUNT(DISTINCT) 2 -- untuk tabel dengan miliaran rows 3 SELECT 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 7 FROM `project.dataset.transactions` 8 WHERE EXTRACT(YEAR FROM transaction_date) = 2024;
Multiple approximate counts pada dataset besar.
Hasil
| unique_customers | unique_products | unique_pairs |
|---|---|---|
| 5200000 | 125000 | 45000000 |