Menyimpulkan dengan SUM dan AVG - MySQL Dasar #53

SUM digunakan untuk menjumlahkan nilai angka sedangkan AVG adalah fungsi yang digunakan untuk mencari nilai rata - rata dari seluruh total penjumlahan sebuah tabel

Lihat daftar isi : Menghasilkan Kesimpulan - MySQL Dasar #50

Misalnya disini Anda ingin mencari jumlah total dan rata - rata nilai dari tabel mail berdasarkan ukurannya, maka Anda dapat menuliskannya seperti berikut

MariaDB [root93]> SELECT SUM(ukuran) AS trafik_total,
    -> AVG(ukuran) AS rata_rata
    -> FROM mail;
+--------------+------------+
| trafik_total | rata_rata  |
+--------------+------------+
|       494659 | 38050.6923 |
+--------------+------------+
1 row in set (0.08 sec)

Contoh lainnya misalnya Anda ingin mengetahui jumlah total KM dan rata - ratanya pada tabel daftar supir, maka Anda dpaat menuliskannya seperti berikut

Perlu diketahui bahwa fungsi SUM dan AVG merupakan fungsi numerik sehingga fungsi ini tidak dapat diterapkan pada nilai string atau temporal. Tetapi kendati demikian nilai bukan numerik dikonversi kedalam format numerik. Misalnya terdapat tabel waktu seperti berikut :

MariaDB [root93]> DESC waktu;
+-------+------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------+------+-----+---------+-------+
| t1    | time | YES  |     | NULL    |       |
| t2    | time | YES  |     | NULL    |       |
| t3    | time | YES  |     | NULL    |       |
+-------+------+------+-----+---------+-------+
3 rows in set (0.01 sec)

MariaDB [root93]> SELECT * FROM waktu;
+----------+----------+----------+
| t1       | t2       | t3       |
+----------+----------+----------+
| 15:00:00 | 17:00:00 | NULL     |
| 08:02:00 | 14:30:00 | NULL     |
| 13:20:21 | 21:14:01 | NULL     |
| 21:00:23 | 19:03:20 | 18:00:00 |
| 23:00:23 | 21:03:20 | NULL     |
| 14:30:23 | 08:24:36 | NULL     |
| 15:08:02 | 13:24:36 | NULL     |
+----------+----------+----------+
7 rows in set (0.03 sec)

Perhatikan jika misalnya saya menjumlahkan waktu pada t1 tanpa merubahnya terlebih dahulu dalam format numerik, maka hasilnya berikut

MariaDB [root93]> SELECT SUM(t1) FROM waktu;
+---------+
| SUM(t1) |
+---------+
| 1096092 |
+---------+
1 row in set (0.00 sec)

Dan hasilnya berbeda jika nilai waktu pada t1 dirubah terlebih dahulu menggunakan fungsi TIME_TO_SEC seperti berikut

MariaDB [root93]> SELECT SUM(TIME_TO_SEC(t1)) FROM waktu;
+----------------------+
| SUM(TIME_TO_SEC(t1)) |
+----------------------+
|               396092 |
+----------------------+
1 row in set (0.01 sec)

Jika nilai waktu ingin dikembali dalam format hitungan waktu, maka bisa tambahkan SEC_TO_TIME didalam parameter

Baca juga : Konversi Waktu MySQL

MariaDB [root93]> SELECT SUM(TIME_TO_SEC(t1)) AS total_detik,
    -> SEC_TO_TIME(SUM(TIME_TO_SEC(t1))) AS total_waktu
    -> FROM waktu;
+-------------+-------------+
| total_detik | total_waktu |
+-------------+-------------+
|      396092 | 110:01:32   |
+-------------+-------------+
1 row in set (0.00 sec)

Baca Selanjutnya : Menggunakan DISTINCT untuk Mengeliminasi Duplikat - MySQL Daasar #54

0 Response to "Menyimpulkan dengan SUM dan AVG - MySQL Dasar #53"

Post a Comment

Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin