Aggregate

APPROX_COUNT_DISTINCT

BigQueryBigQuery

Estimates the number of distinct values using the HyperLogLog++ algorithm. Much faster and less resource-intensive than COUNT(DISTINCT) for large datasets.

Tipe hasil: INT64Diperbarui: 13 Jun 2026

Syntax

SQL
APPROX_COUNT_DISTINCT(expression)

Parameter

expressionanywajib

A column or expression to estimate the number of distinct values for

Contoh Penggunaan

Estimate 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';

Compares approximate vs. exact count for unique users.

Hasil
approx_unique_usersexact_unique_users
15238471525000

Daily Unique Users with 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;

Efficiently calculates daily unique users.

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 country.

Hasil
countryunique_usersunique_sessionsunique_devices
Indonesia250000087500001850000
Malaysia4500001575000380000
Singapore3200001120000290000

Performance Comparison

SQL
1-- This query can be 10-100x faster than COUNT(DISTINCT)
2-- for tables with billions of 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 on a large dataset.

Hasil
unique_customersunique_productsunique_pairs
520000012500045000000

Pertanyaan Umum tentang APPROX_COUNT_DISTINCT

Apa itu fungsi APPROX_COUNT_DISTINCT di BigQuery?
Estimates the number of distinct values using the HyperLogLog++ algorithm. Much faster and less resource-intensive than COUNT(DISTINCT) for large datasets. Di BigQuery, fungsi APPROX_COUNT_DISTINCT termasuk dalam kelompok fungsi yang sering digunakan untuk mengolah dan menganalisis data secara efisien.
Bagaimana cara menggunakan APPROX_COUNT_DISTINCT di BigQuery?
Gunakan sintaks berikut: APPROX_COUNT_DISTINCT(expression). Pastikan argumen yang dimasukkan sudah sesuai dengan tipe data yang diharapkan.
Apa nilai yang dikembalikan oleh fungsi APPROX_COUNT_DISTINCT?
Fungsi APPROX_COUNT_DISTINCT mengembalikan nilai bertipe INT64. Pastikan tipe data hasil sudah sesuai dengan kebutuhan query atau formula kamu. Jika input mengandung nilai NULL, perilaku fungsi dapat berbeda — selalu periksa dokumentasi untuk memastikan hasilnya sesuai ekspektasi.
Apa saja parameter fungsi APPROX_COUNT_DISTINCT?
Fungsi ini memiliki 1 parameter wajib. Parameter yang digunakan: expression (any, wajib): A column or expression to estimate the number of distinct values for.
Ngulik Langsung

Sudah paham APPROX_COUNT_DISTINCT? Latih langsung di browser

Latihan interaktif, langsung di browser.

Latihan Langsung →