Aggregate
BigQuery
AVG
Menghitung nilai rata-rata (mean) dari nilai numerik dalam sebuah kolom. Mengabaikan nilai NULL dan mendukung berbagai tipe numerik di BigQuery.
Tipe hasil:
FLOAT64Diperbarui: 7 Jan 2026Syntax
SQL
AVG(expression) | AVG(DISTINCT expression)Parameter
expressionnumericwajib
Kolom atau ekspresi numerik yang akan dihitung rata-ratanya
DISTINCTmodifieropsional
Menghitung rata-rata hanya dari nilai unik
Contoh Penggunaan
Rata-rata Sederhana
SQL
1 SELECT AVG(price) as average_price 2 FROM `project.dataset.products`;
Menghitung rata-rata harga semua produk.
Hasil
249500.75
AVG dengan GROUP BY
SQL
1 SELECT 2 department, 3 AVG(salary) as avg_salary, 4 COUNT(*) as employee_count 5 FROM `project.dataset.employees` 6 GROUP BY department 7 ORDER BY avg_salary DESC;
Menghitung rata-rata gaji per departemen.
Hasil
| department | avg_salary | employee_count |
|---|---|---|
| Engineering | 15500000.00 | 45 |
| Marketing | 12000000.00 | 28 |
| Operations | 9500000.00 | 62 |
AVG dengan Conditional
SQL
1 SELECT 2 AVG(rating) as overall_avg, 3 AVG(IF(verified_purchase = TRUE, rating, NULL)) as verified_avg, 4 AVG(IF(verified_purchase = FALSE, rating, NULL)) as unverified_avg 5 FROM `project.dataset.reviews`;
Membandingkan rata-rata rating antara verified dan unverified purchase.
Hasil
| overall_avg | verified_avg | unverified_avg |
|---|---|---|
| 4.2 | 4.5 | 3.8 |
Moving Average dengan Window Function
SQL
1 SELECT 2 sale_date, 3 daily_revenue, 4 AVG(daily_revenue) OVER ( 5 ORDER BY sale_date 6 ROWS BETWEEN 6 PRECEDING AND CURRENT ROW 7 ) as moving_avg_7_days 8 FROM `project.dataset.daily_sales` 9 ORDER BY sale_date;
Menghitung 7-day moving average dari revenue harian.
Hasil
| sale_date | daily_revenue | moving_avg_7_days |
|---|---|---|
| 2024-01-07 | 2500000 | 2285714.29 |
| 2024-01-08 | 2800000 | 2414285.71 |
| 2024-01-09 | 2200000 | 2428571.43 |