Overview
Dalam SQL, kita dapat melakukan agregasi seperti halnya seperti di Spreadsheet dengan menggunakan beberapa fungsi seperti SUM, AVG dan COUNT. Artikel ini akan menjelaskan definisi, contoh, cara menggunakannya.
Pada SQL, kita tidak hanya dapat membuat tabel yang berisi value asli dari tabelnya. Di SQL, kita dapat juga membuat perhitungan/kalkulasi yang bersumber dari beberapa value dan menghasilkan sebuah value baru.
Dalam artikel ini, kita akan membahas fungsi agregat yakni SQL SUM, COUNT, dan AVG.
Apa Itu Fungsi Agregasi?
Fungsi agregasi pada SQL adalah sebuah fungsi yang akan menghasilkan sebuah value baru dari hasil perhitungan beberapa kolom pada sebuah query. Terdapat beberapa jenis fungsi agregasi SQL yang dapat kita gunakan, di antaranya:
- COUNT
- SUM
- AVG
Dalam menggunakan fungsi agregasi ini, biasanya diikuti oleh klausa GROUP BY ataupun HAVING. Penambahan GROUP BY biasanya digunakan apabila ada kolom lain yang ikut dipanggil dalam query kita.
Contohnya, kita ingin hasil agregasi perhitungan penjualan barang A dikelompokkan berdasarkan lokasi pembelian. Maka kita menambahkan klausa GROUP BY di akhir query. Sedangkan klausa HAVING digunakan pada saat kita akan menambahkan filter dari value yang kita inginkan. Filter HAVING ini digunakan untuk value yang merupakan hasil agregasi.
Sebagai contoh, seorang data analyst ingin mengetahui pendapatan perusahaan ABC selama 5 bulan dan dikelompokkan berdasarkan jenis produk yang perusahaannya jual. Maka pada query-nya, dia akan menggunakan fungsi SUM kolom pendapatan dan diikuti dengan GROUP BY berdasarkan produknya pada akhir query-nya.
Berikutnya contoh fungsi agregasi dan filter HAVING. Katakanlah seorang analis data di perusahaan yang sama ingin mengetahui pelanggan yang membeli produk dari perusahaannya dengan nominal lebih dari Rp 5.000.000, maka ia dapat menambahkan filter HAVING pada akhir query-nya dengan menuliskan:
HAVING SUM(Belanja) > 5000000
Nilai yang digunakan pada HAVING dapat berupa lebih besar (>), lebih kecil (<) ataupun sama (=) dari value yang terdapat pada kolom.
Fungsi COUNT
Fungsi agregasi COUNT adalah fungsi yang akan menghitung jumlah value dari sebuah kolom dari sebuah tabel. Fungsi COUNT ini dapat juga digabungkan dengan DISTINCT untuk menampilkan value yang unik dari sebuah kolom sehingga apabila ada value yang sama dari kolom tersebut tidak akan dihitung. Fungsi COUNT dapat digunakan untuk kolom dengan tipe data string ataupun numerik. Adapun untuk syntax-nya adalah seperti berikut.
Untuk contoh hasil query COUNT dan COUNT DISTINCT bisa dilihat pada gambar berikut.
Dapat dilihat perbedaan hasil dari query di atas. Untuk query yang hanya menggunakan COUNT saja akan mendapatkan hasil yang lebih banyak karena semua value dari kolom tersebut akan dihitung. Sedangkan untuk hasil COUNT DISTINCT menghasilkan nilai yang lebih kecil karena hanya menghitung value yang unik dan tidak duplikat.
Selain dengan query di atas, untuk COUNT dan COUNT DISTINCT dapat juga digabungkan dengan menggunakan GROUP BY. Contoh penggunaan dan hasil query COUNT dengan GROUP BY bisa dilihat pada gambar di bawah ini.
Dari query di atas, dapat dilihat OrderID yang merupakan kolom dengan tipe data string dapat dihitung dengan fungsi COUNT. Kemudian dikelompokkan berdasarkan ProductID sehingga dapat diketahui jumlah order dari masing-masing ProductID.
Fungsi SUM
Fungsi SUM merupakan fungsi yang digunakan untuk menjumlahkan value dari sebuah kolom. Fungsi ini hanya dapat digunakan apabila tipe data dari kolom tersebut adalah numerik (integer, biginteger atau float). Fungsi ini dituliskan dengan menuliskan SUM pada kolom yang akan dihitung. Untuk syntax-nya dapat dilihat pada gambar di bawah ini.
Untuk contoh penggunaannya dapat dilihat pada gambar selanjutnya.
Dapat dilihat apabila tanpa menggunakan GROUP BY, maka query akan menghasilkan satu hasil saja karena query akan menjumlahkan nilai dari keseluruhan kolom. Fungsi SUM juga dapat digabungkan dengan klausa GROUP BY dan HAVING seperti yang telah dijelaskan di awal. Untuk contohnya adalah seperti berikut.
{{COMPONENT_IDENTIFIER}}
Gambar di atas merupakan contoh hasil query dengan menggunakan GROUP BY. Hasil fungsi SUM dikelompokkan berdasarkan dengan ProductID.
Sedangkan gambar berikutnya merupakan hasil dari query SUM dengan menggunakan GROUP BY dan HAVING. Dapat dilihat apabila menggunakan Total_Jumlah difilter dengan HAVING > 100 maka hanya akan terdapat 56 rows sedangkan apabila tidak menggunakan filter HAVING akan menghasilkan 77 rows.
Fungsi AVG(Average)
Fungsi AVG(Average) merupakan sebuah fungsi yang digunakan untuk mendapatkan nilai rata-rata dari sebuah kolom dengan tipe data numerik. Fungsi ini sama dengan metode mean atau nilai rata-rata pada perhitungan matematika dan statistika. Untuk syntax-nya dapat dilihat pada gambar berikut.
Untuk contoh hasil dari penggunaan fungsi AVG terdapat pada gambar selanjutnya.
Sama seperti SUM, fungsi AVG dapat juga digunakan dengan menambahkan GROUP BY serta HAVING pada syntax query-nya. Contoh penggunaannya adalah seperti berikut.
Gambar di atas merupakan contoh hasil query dari AVG yang digabungkan dengan GROUP BY, terdapat 29 hasil karena sudah dikelompokkan berdasarkan SupplierID dengan klausa GROUP BY. Selanjutnya adalah penggunaan AVG yang digabung dengan GROUP BY dan HAVING.
Setelah difilter dengan menggunakan AVG_Price < 40, terdapat 25 supplier yang memiliki harga rata-rata produknya di bawah 40.
Penutup
Dalam SQL, kita dapat melakukan agregasi seperti halnya pada aplikasi-aplikasi Spreadsheet dengan menggunakan beberapa fungsi seperti SUM, AVG dan COUNT. Fungsi-fungsi tersebut berguna dalam memecahkan beberapa permasalahan seperti mencari jumlah UserID pada sebuah aplikasi, menghitung jumlah pendapatan sebuah perusahaan, menghitung rata-rata jumlah pengguna harian sebuah aplikasi dan lainnya.
Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!
Rasakan pengalaman belajar di RevoU Full-Stack Program: Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion. Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)
Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!
Rasakan pengalaman belajar di RevoU Full-Stack Program: Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion. Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)
Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!
Rasakan pengalaman belajar di RevoU Full-Stack Program: Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion. Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)