top of page
bg-grid 1.png

Fungsi Agregat SQL SUM, SQL COUNT, dan SQL AVG

Pelajari fungsi agregat SQL SUM, SQL COUNT, dan SQL AVG di sini!

Data Analytics

Farhan Fauzan Muharam

Mau Belajar

Data Analytics

Belajar di RevoU! Dapatkan skill digital paling in-demand langsung dari praktisi terbaik di bidangnya. Kelas online 100% LIVE, 1:1 career coaching, dan akses ke Community Hub dengan 12500+ member selamanya untuk support perkembangan karir kamu!

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:

  1. COUNT

  2. SUM

  3. 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.

SELECT
COUNT (Nama_Kolom)
FROM (Nama Tabel)

SELECT
COUNT (DISTINCT Nama_Kolom)
FROM Nama_Tabel

Untuk contoh hasil query COUNT dan COUNT DISTINCT bisa dilihat pada gambar berikut.

SELECT
COUNT (ProductID) as Jumlah_Order
FROM (OrderDetails]
Contoh hasil query COUNT

SELECT
COUNT (ProductID) as Jumlah_Order
FROM (OrderDetails]

Contoh hasil query COUNT DISTINCT

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.

SELECT
COUNT (OrderID) as Jumlah_Order
,ProductID
FROM [OrderDetails]
Group By ProductID


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.

SELECT
SUM (Nama_Kolom)
FROM Nama_Tabel

Untuk contoh penggunaannya dapat dilihat pada gambar selanjutnya.

SELECT
SUM(Quantity)
FROM [OrderDetails]
Contoh Penggunaan Fungsi SUM

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.

SELECT
SUM(Quantity) as Total_Jumlah
,Product ID
FROM OrderDetails
Group By ProductID;

Gambar di atas merupakan contoh hasil query dengan menggunakan GROUP BY. Hasil fungsi SUM dikelompokkan berdasarkan dengan ProductID. 

SELECT
SUM(Quantity) as Total_Jumlah
,ProductID
FROM OrderDetails
Group By ProductID
HAVING Total_Jumlah > 100;

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.

SELECT
AVG (Nama_kolom)
FROM Nama_Tabel;

Untuk contoh hasil dari penggunaan fungsi AVG terdapat pada gambar selanjutnya.

SELECT
AVG (Price)
FROM Products;

Sama seperti SUM, fungsi AVG dapat juga digunakan dengan menambahkan GROUP BY serta HAVING pada syntax query-nya. Contoh penggunaannya adalah seperti berikut.

SELECT
AVG(Price)
,SupplierID
FROM Products
Group By SupplierID

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.

SELECT
AVG(Price) as AVG_Price
,SupplierID
FROM [Products]
Group By 2
Having AVG_Price < 40

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.

bottom of page