Buat Akun DQLab & Akses Kelas Data Science Python, R, SQL, Excel GRATIS

5 Kesalahan Umum dalam Penulisan SQL GROUP BY

Belajar Data Science di Rumah 23-November-2022
https://dqlab.id/files/dqlab/cache/e060f9acb5461c50e47f9e7394ae5db8_x_Thumbnail800.jpg

Dalam operasi SQL, terdapat banyak sekali kata kunci yang digunakan untuk melengkapi perintah SELECT. Salah satunya yang digunakan adalah SQL GROUP BY. SQL GROUP BY merupakan fungsi yang digunakan untuk mengelompokkan data sekaligus menampilkan data yang diinginkan baik kolom maupun baris. SQL GROUP BY menghasilkan kelompok data dengan menghilangkan data yang sama dalam satu tabel. Apabila satu kolom terdapat beberapa data yang sama maka data yang akan ditampilkan hanya salah satu. 


SQL GROUP BY digunakan untuk menggabungkan data dengan nilai yang sama dalam daftar bidang tertentu menjadi satu data. Pernyataan SQL group by ini sering digunakan untuk fungsi agregat seperti COUNT, MAX, MIN, SUM, AVG untuk mengelompokkan hasil yang ditetapkan oleh satu kolom atau lebih. Adapun format penulisan SQL GROUP BY adalah sebagai berikut:


SELECT [KOLOM1], [KOLOM2] FROM NAMA_TABEL GROUP BY [KOLOM1], [KOLOM2]


Tapi seringkali user saat melakukan akses database mengalami kesalahan penulisan pada sintaks GROUP BY SQL. Hal ini tentunya akan berpengaruh dalam output yang dihasilkan. Ketika kita salah menuliskannya maka hasilnya juga bisa salah. Kesalahan-kesalahan ini perlu kalian waspadai bagi para pemula yang ingin belajar terkait SQL. Kira-kira apa saja kesalahan yang biasanya terjadi? DQLab sudah merangkum informasinya untuk kamu, simak artikelnya sampai habis ya!


1. Lupa Menuliskan GROUP BY dengan Fungsi Aggregate

Kesalahan pertama yang seringkali disepelekan dalam melakukan penulisan SQL GROUP BY adalah lupa menuliskan perintah GROUP BY dengan fungsi aggregate. Fungsi agregate disini seperti AVG, MAX, MIN, COUNT dan lain-lain. Ketika user menggunakan perintah SELECT dan diiringi dengan GROUP BY biasanya dipakai untuk mengelompokkan baris ke dalam grup spesifik sesuai dengan kondisi tabel yang ada. Kemudian dilakukan perhitungan pada masing-masing grup yang sudah dikumpulkan tadi.


Namun terkadang, user ketika mengakses database lupa untuk menyertakan perintah GROUP BY di dalam pernyataan sintaks SELECT. Saya berikan satu contoh dibawah ini. Anggaplah saya memiliki tabel resep yang berisi 100 baris data dengan 6 kolom. Berikut adalah penampakan dari tabelnya:

SQL


SQL

Berikut adalah penjelasan dari masing-masing kolom:

  • Meal_category - kategori sajian menu yang diolah (sup, minuman, makanan penutup/desserts, bread and pastry dan lain-lain).

  • Name - Nama resep yang akan diolah

  • Author - Nama chef yang memasak olahan makanan dan minuman yang disajikan

  • No_of_views -Total tayangan resep yang sudah ditonton dalam bulan ini

  • No_of_views_1st_mth - total tayangan pada bulan sebelumnya

  • Author_id - kode unik dari chef


Contoh kita ingin menghitung jumlah resep pada tiap kategorinya. Kemudian kamu ingin menuliskan sintaksnya tanpa GROUP BY.

SQL

Hasilnya ketika kode tersebut dijalankan menjadi sebagai berikut

SQL

Penjumlahan yang sudah dilakukan menghasilkan nilai 100 pada kategori menu cold appetizer. Jumlah ini adalah jumlah seluruh kategori yang hanya ada di menu tersebut yaitu cold appetizer atau makanan pembuka. Padahal kita ingin jumlah dari masing-masing kelompok menu. Pastinya kalau begini akan membingungkan pembaca terkait dengan hasil running data. Ingat tujuan kita di awal adalah menjumlahkan setiap kategori dari masing-masing menu. Untuk mengatasi hal tersebut maka kita perlu menambahkan perintah GROUP BY meal_category di bagian akhir sintaks.


SQL


Kenapa demikian?

  • Baris data digabungkan berdasarkan kategori resep. Misalnya dessert dijadikan satu grup sendiri, sup sendiri, makanan utama sendiri. Kolom meal_category dispesifikkan dengan menggunakan perintah GROUP BY. Kemudian diikuti dengan SELECT.

  • Setiap group menggunakan fungsi aggregate berupa COUNT untuk menghitung total resep setiap groupnya

Berikut adalah hasilnya:

SQL


Baca juga : Saatnya Belajar SQL, Kenali Rekomendasi Query SQL Bagi Pemula


2. Sulit Membedakan WHERE dengan HAVING

Kesalahan kedua adalah sulit membedakan kapan memakai WHERE dan HAVING. Kita masih menggunakan contoh yang sama. Apabila kita ingin melihat kategorinya dan menampilkan data lebih dari 10 resep, terkadang pemula yang baru belajar SQL menuliskan kuerinya seperti ini:

SQL

Sintaks diatas justru menghasilan error. Kenapa? Karena user tidak menggunakan fungsi aggregat di bagian WHERE. WHERE digunakan bersamaan dengan GROUP BY apabila kita ingin menyaring baris sebelum datanya dikelompokkan. Dalam contoh ini, kita mau menyaring barisnya setelah datanya sudah dikelompokkan. Jadi yang kita butuhkan adalah fungsi HAVING bukan WHERE. Bedanya gimana? Nih, lihat contoh berikut 


Contoh 1 - Melakukan Pengelompokkan Kategori Menu dengan Tontonan Lebih dari 1M 

Berikut adalah kode yang dituliskan jika ingin melakukan pengelompokkan kategori resep yang telah ditonton lebih dari 1M Views. 

Apabila kita menggunakan HAVING maka kita ingin menyaring data setelah dikelompokkan. Berikut adalah hasilnya:

SQL


Contoh 2 - Kinerja John dalam Tiap Kategori Menu

Kita akan coba pakai contoh lain untuk melakukan kalkulasi kinerja John dalam menyajikan kategori menu. Berikut adalah kodenya:

SQL

Kita menggunakan WHERE apabila kita ingin menyaring data dari John saja sebelum kita ingin mengelompokkannya dalam kategori menu yang disajikan. Berikut adalah hasilnya:

SQL


3. Mencantumkan Kolom Tidak di GROUP BY

Kesalahan ketiga adalah melakukan listing pada kolom dengan menggunakan perintah SELECT tapi tidak menuliskannya pada GROUP BY. Contoh kasus, kita ingin melihat total tayangan resep yang sudah ditonton pada setiap kategori menu. Tiba-tiba, kita ingin menambahkan kolom author di sebelum kueri. Berikut adalah kodenya:

SQL

Nah, kesalahan yang terjadi ketika ingin menuliskan perintah GROUP BY adalah kita ingin menambahkan kolom author pada kolom SELECT tapi tidak di dalam sintaks GROUP BY. Tentunya akan menghasilkan hasil yang berbeda bukan. Padahal SQL tidak tahu bagaimana menghitung total tiap chef karena tidak menyertakan GROUP BY di bagian akhir kolom author. 

Tentu hasilnya akan error dan akan menyebabkan kesalahan dalam penulisan SQL GROUP BY. Lalu kode yang benar seperti apa? Berikut adalah kodenya

SQL

Berikut adalah hasilnya apabila sudah ditambahkan kolom author pada sintaks GROUP BY.

SQL

Perlu diingat bahwa semua kolom yang tidak teragregasi dengan perintah SELECT juga harus dicantumkan pada GROUP BY. Nah, pada contoh berikut kolom yang tidak teragregasi adalah meal_category dan author. Maka dari itu, kolom yang tidak teragregasi juga disematkan perintah SELECT dan GROUP BY.


Baca juga : Catat! Ini 3 Keuntungan Belajar SQL dalam Mengolah Data


4. Tidak Dikelompokkan dengan Unique Key

Kesalahan keempat adalah tidak tergabung datanya dengan kata kunci unique. Misalnya kita ingin menghitung rata-rata jumlah yang ditonton pada setiap resep yang dibuat oleh chef. Query ini dikalkulasikan berupa rata-rata total tontonan setiap kategori menu dan setiap chef. Berikut adalah kodenya:

SQL

Apabila kode tersebut dijalankan maka akan menghasilkan output sebagai berikut:

SQL

Namun, sebenarnya kami memiliki dua chef yang bernama Lisa pada tabel tersebut. Ketika dikelompokkan hasil menurut kolom penulis, Lisa dua-duanya dirata-ratakan. Kenapa? Sebab, user menggunakan kolom Unique Key dalam file GROUP BY. Apabila ingin melihat rata-rata Lisa secara terpisah maka kita perlu menambahkan author_id (kolom unik) ke dalam GROUP BY.

SQL

Sekarang kita bisa melihat hasilnya secara langsung antara Lisa yang id=11 dengan Lisa yang memiliki id=5. 

SQL

Penggunaan SQL group by seringkali dibutuhkan oleh para praktisi data dalam proses mengakses atau menampilkan data. Untuk lebih memahaminya kalian bisa mulai mencoba mempraktekannya menggunakan salah satu modul DQLab yang berjudul Fundamental SQL Using Functions and Group By. 


DQLab menyajikan materi secara teori maupun praktek. Selain itu di DQLab pun menyediakan berbagai modul dan ebook dengan materi yang beragam sesuai kebutuhan. Cara bergabungnya sangat mudah. Langsung saja sign up di DQLab.id dan nikmati belajar data science DQLab


Penulis: Reyvan Maulid

Mulai Karier
sebagai Praktisi
Data Bersama
DQLab

Daftar sekarang dan ambil langkah
pertamamu untuk mengenal
Data Science.

Buat Akun


Atau

Sudah punya akun? Login