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;