Masalah:
Anda ingin menghitung rata-rata angka yang disimpan dalam kolom.
Contoh:
Basis data kami memiliki tabel bernama sale dengan data pada kolom berikut:id , city , year , dan amount .
| id | kota | tahun | jumlah |
|---|---|---|---|
| 1 | Los Angeles | 2017 | 2345.50 |
| 2 | Chicago | 2018 | 1345,46 |
| 3 | Annandale | 2016 | 900.56 |
| 4 | Annandale | 2017 | 23230.22 |
| 5 | Los Angeles | 2018 | 12456.20 |
| 6 | Chicago | 2017 | 89000.40 |
| 7 | Annandale | 2018 | 21005,77 |
| 8 | Chicago | 2016 | 2300.89 |
Mari kita hitung penjualan rata-rata, terlepas dari kota atau tahun.
Solusi:
SELECT AVG(amount) as avg_amount FROM sale;
Ini hasilnya:
| jumlah_rata-rata |
|---|
| 19073.125000 |
Diskusi:
Jika Anda ingin menghitung rata-rata nilai numerik yang disimpan dalam kolom, Anda dapat melakukannya menggunakan AVG() fungsi agregat; dibutuhkan sebagai argumennya nama kolom yang rata-ratanya ingin Anda hitung. Jika Anda belum menentukan kolom lain di SELECT klausa, rata-rata akan dihitung untuk semua record dalam tabel.
Tentu saja, karena ini adalah fungsi agregat, AVG() juga dapat digunakan dengan kelompok. Misalnya, jika kita ingin mencari penjualan rata-rata per kota, kita dapat menulis kueri ini:
SELECT city, AVG(amount) as avg_amount FROM sale GROUP BY city;
Rata-rata dihitung untuk setiap kota:
| kota | jumlah |
|---|---|
| Los Angeles | 7400.850000 |
| Chicago | 30882.250000 |
| Annandale | 15045.516667 |
Selain itu, jika rata-rata harus dibulatkan, Anda dapat meneruskan hasil AVG() fungsi menjadi ROUND() :
SELECT city, ROUND(AVG(amount), 2) as avg_amount FROM sale GROUP BY city;