Main Logo
  • Home
  • About
  • Kursus
    • Paket Kursus
    • Roadmap Profesi
  • Elearning
  • Blog
Daftar
Main Logo
  • Home
  • About
  • Kursus
    • Paket Kursus
    • Roadmap Profesi
  • Elearning
  • Blog

SQL GROUP BY dan Fungsi Agregasi: COUNT, SUM, AVG

  • July 22, 2026
  • oleh Edusoft Center

Dalam dunia pengolahan data, seringkali kita tidak hanya butuh melihat data satu per satu, tapi juga butuh meringkasnya menjadi informasi yang lebih bermakna. Misalnya, berapa total penjualan per kota, berapa rata-rata gaji per departemen, atau berapa jumlah pesanan per pelanggan. Di sinilah GROUP BY dan fungsi agregasi berperan penting dalam SQL.

Apa itu GROUP BY?

GROUP BY adalah klausa SQL yang digunakan untuk mengelompokkan baris-baris data yang memiliki nilai sama pada satu atau lebih kolom menjadi satu grup. Setelah data dikelompokkan, kita biasanya menerapkan fungsi agregasi pada tiap grup tersebut untuk menghasilkan ringkasan.

Sintaks dasarnya:

SELECT kolom, FUNGSI_AGREGAT(kolom_lain)
FROM nama_tabel
GROUP BY kolom;

Tanpa GROUP BY, fungsi agregasi akan menghitung nilai untuk seluruh tabel sebagai satu kesatuan. Dengan GROUP BY, perhitungan dilakukan per kelompok data.

Fungsi Agregasi Utama

1. COUNT() — Menghitung Jumlah Baris

COUNT() digunakan untuk menghitung jumlah baris dalam suatu grup atau tabel.

Contoh hasil:

departemenjumlah_karyawan
IT12
Marketing8
Keuangan5

Query ini menghitung berapa banyak karyawan di masing-masing departemen. Perlu diperhatikan, COUNT(*) menghitung semua baris termasuk yang memiliki nilai NULL, sedangkan COUNT(nama_kolom) hanya menghitung baris dengan nilai yang tidak NULL pada kolom tersebut.

2. SUM() — Menjumlahkan Nilai

SUM() digunakan untuk menjumlahkan seluruh nilai numerik dalam suatu grup.

Contoh hasil:

kotatotal_per_kota
Semarang25.000.000
Jakarta48.500.000
Surabaya31.200.000

Query ini berguna misalnya untuk melihat total pendapatan dari tiap kota tempat transaksi dilakukan.

3. AVG() — Menghitung Rata-rata

AVG() digunakan untuk menghitung nilai rata-rata dari sekumpulan data numerik.

Contoh hasil:

departemenrata_rata_gaji
IT8.500.000
Marketing6.750.000
Keuangan7.200.000

Fungsi ini sangat membantu untuk analisis, seperti mengetahui rata-rata gaji per departemen atau rata-rata nilai ujian per kelas.

Fungsi Agregasi Lainnya

Selain tiga fungsi di atas, SQL juga menyediakan:

  • MIN() — mengambil nilai terkecil dalam grup
  • MAX() — mengambil nilai terbesar dalam grup

Kelima fungsi ini (COUNT, SUM, AVG, MIN, MAX) adalah fungsi agregasi paling umum digunakan dalam SQL.

Menggunakan GROUP BY dengan Banyak Kolom

GROUP BY juga bisa menggunakan lebih dari satu kolom sekaligus, sehingga pengelompokan menjadi lebih detail.

SELECT departemen, jabatan, COUNT(*) AS jumlah
FROM karyawan
GROUP BY departemen, jabatan;

Query ini mengelompokkan data berdasarkan kombinasi departemen dan jabatan, sehingga hasilnya lebih spesifik.

Menyaring Hasil Agregasi dengan HAVING

Salah satu hal penting yang sering membingungkan pemula adalah perbedaan antara WHERE dan HAVING. Klausa WHERE menyaring baris sebelum data dikelompokkan, sedangkan HAVING menyaring hasil setelah data dikelompokkan dan diagregasi.

SELECT departemen, COUNT(*) AS jumlah_karyawan
FROM karyawan
GROUP BY departemen
HAVING COUNT(*) > 5;

Query di atas hanya menampilkan departemen yang memiliki lebih dari 5 karyawan. Ini tidak bisa dilakukan dengan WHERE, karena WHERE tidak dapat mengakses hasil fungsi agregasi.

Aturan Penting saat Menggunakan GROUP BY

  1. Kolom pada SELECT harus konsisten. Setiap kolom yang tidak berada dalam fungsi agregasi pada bagian SELECT harus juga muncul di GROUP BY.
  2. Urutan eksekusi klausa SQL. Secara logis, SQL memproses FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY. Memahami urutan ini membantu menghindari kesalahan umum.
  3. Gunakan alias agar hasil lebih mudah dibaca, seperti AS total_penjualan atau AS rata_rata_gaji.

Contoh Kasus Lengkap

Misalkan kita punya tabel pesanan dengan kolom id_pelanggan, nama_produk, dan jumlah_harga. Kita ingin mengetahui total belanja tiap pelanggan yang telah melakukan lebih dari 3 kali transaksi.

SELECT id_pelanggan, 
       COUNT(*) AS jumlah_transaksi, 
       SUM(jumlah_harga) AS total_belanja,
       AVG(jumlah_harga) AS rata_rata_belanja
FROM pesanan
GROUP BY id_pelanggan
HAVING COUNT(*) > 3
ORDER BY total_belanja DESC;

Query ini menggabungkan GROUP BY, tiga fungsi agregasi sekaligus, HAVING, dan ORDER BY dalam satu query untuk menghasilkan laporan yang informatif.

Kesimpulan

GROUP BY dan fungsi agregasi seperti COUNT, SUM, dan AVG adalah fondasi penting dalam analisis data menggunakan SQL. Dengan memahami cara kerja keduanya, kita bisa mengubah data mentah yang jumlahnya ribuan atau bahkan jutaan baris menjadi ringkasan yang mudah dipahami dan siap digunakan untuk pengambilan keputusan. Menguasai kombinasi GROUP BY, HAVING, dan fungsi agregasi adalah keterampilan dasar yang wajib dimiliki siapa pun yang bekerja dengan data.

Previous Post

Post comment

Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • SQL GROUP BY dan Fungsi Agregasi: COUNT, SUM, AVG
  • Cara Mengubah Tipe Data Kolom di Pandas: Panduan Praktis untuk Pemula
  • Mengenal Google Colab: Cara Menjalankan Python Tanpa Instalasi
  • Panduan Menggunakan Virtual Environment (venv) di Python agar Proyek Data Tetap Rapi
  • Cara Hapus Data Duplikat di Pandas

Arsip

  • July 2026
  • June 2026
  • April 2026
  • March 2026
  • February 2026
  • January 2026
  • September 2025
  • August 2025
  • July 2025
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017
  • November 2017
  • October 2017
  • September 2017
  • August 2017
  • July 2017
  • June 2017
  • May 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016
  • August 2016
  • July 2016
  • June 2016
  • May 2016
  • April 2016
  • March 2016
  • February 2016
  • January 2016
  • December 2015
  • November 2015
  • October 2015
  • September 2015
  • August 2015
  • July 2015
  • June 2015
  • May 2015
  • April 2015
  • March 2015
  • February 2015
  • January 2015
  • December 2014
  • November 2014
  • October 2014
  • September 2014
  • August 2014
  • July 2014
  • June 2014
  • May 2014
  • April 2014
  • March 2014
  • February 2014
  • January 2014
  • December 2013
  • November 2013
  • October 2013
  • September 2013
  • August 2013
  • July 2013
  • June 2013
  • May 2013
  • April 2013
  • March 2013
  • February 2013
  • January 2013
  • December 2012
  • November 2012
  • October 2012
  • September 2012
  • August 2012
  • July 2012
  • June 2012
  • May 2012
  • April 2012
  • December 2011
  • November 2011

Tags

#EdusoftCenter apache web server dns server kursus android kursus database kursus dns dan web server kursus dns server kursus ethical hacking kursus hacking kursus jaringan kursus jaringan linux Kursus Komputer kursus komputer di solo kursus komputer di solo / surakarta kursus komputer di surakarta kursus linux Kursus Linux Forensics kursus linux networking kursus linux security kursus linux server kursus mikrotik kursus networking kursus network security kursus php Kursus PHP dan MySQL kursus php mysql kursus proxy kursus security kursus ubuntu kursus ubuntu server kursus web kursus web security kursus web server kursus wordpress kursus wordpress theme linux MySQL pelatihan komputer di solo PHP security training komputer training komputer di solo tutorial php ubuntu wordpress

© Edusoft Center - Kursus Komputer di Solo | 2010 - 2025 | Privacy Policy | Site Map

All Right Reserved

WhatsApp us