Klausa GROUP BY dan klausa ORDER BY dalam SQL digunakan untuk mengatur data yang diperoleh dari query SQL. Perbedaan penting antara klausa GROUP BY dan klausa ORDER BY adalah bahwa klausa GROUP BY diterapkan ketika kita ingin menggunakan fungsi agregat dalam kueri SQL pada lebih dari satu set baris. Sebaliknya, klausa ORDER BY diterapkan ketika kita ingin menerima data yang diperoleh oleh kueri dalam urutan yang diurutkan. Sebelum beralih ke grafik perbandingan, pertama-tama kita akan memahami klausa SQL ini.
GROUP BY Clause
Pernyataan GROUP BY dalam SQL menggunakan kueri untuk menyusun data dalam nilai atribut. Biasanya, kita menggunakan klausa GROUP BY dengan pernyataan SELECT. Kita harus selalu menempatkan klausa GROUP BY setelah klausa WHERE. Selain itu, ini juga ditempatkan sebelum klausa ORDER BY.
Kita sering dapat menggunakan klausa GROUP BY dengan fungsi agregat seperti SUM, AVG, MIN, MAX, dan COUNT untuk menghasilkan output dari database. Kueri untuk klausa GROUP BY adalah kueri yang dikelompokkan, dan mengembalikan satu baris untuk setiap objek yang dikelompokkan.
Di bawah ini adalah Sintaks untuk menggunakan Klausa GROUP BY dalam kueri SQL
SELECT COLUMNNAME, FUNCTION(COLUMNNAME) FROM TABLENAME WHERE CONDITION GROUP BY COLUMNNAME;
Mari kita pahami klausa GROUP BY dengan bantuan beberapa contoh. Perhatikan tabel berikut beserta catatan yang diberikan.
Tabel:Karyawan
KARYAWAN | FIRST_NAME | LAST_NAME | GAJI | KOTA | DEPARTEMEN | MANAGERID | JAM_KERJA | GENDER |
1001 | VAIBHAVI | MISHRA | 65000 | PUNE | ORACLE | 1 | 12 | B |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | ORACLE | 1 | 9 | M |
1003 | NIKHIL | VANI | 50.000 | JAIPUR | FMW | 2 | 10 | M |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACLE | 1 | 10 | B |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 | 12 | M |
2003 | RUCHIKA | JAIN | 50.000 | MUMBAI | UJI | 4 | 9 | B |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 | 9 | B |
3002 | ANUJA | DIMANA | 50500 | JAIPUR | FMW | 2 | 9 | B |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 | 12 | M |
4001 | RAJESH | BAIK | 60500 | MUMBAI | UJI | 4 | 10 | M |
Contoh 1: Misalkan kita ingin mengetahui jumlah gaji karyawan di kota tertentu untuk data di atas. Untuk melakukan ini, kami akan menjalankan kueri di bawah ini sebagai berikut:
SELECT CITY, SUM(SALARY) FROM EMPLOYEES GROUP BY CITY;
Query ini awalnya membentuk hasil yang mengelompokkan kota. Selanjutnya, SUM fungsi dilakukan pada setiap kelompok kota, dan akhirnya, kita akan mendapatkan hasil yang diinginkan seperti yang ditunjukkan di bawah ini:
Contoh 2: Misalkan kita ingin mengetahui gaji maksimal karyawan di departemen tertentu untuk data di atas. Untuk melakukan ini, kami akan menjalankan kueri di bawah ini sebagai berikut:
SELECT DEPARTMENT, MAX(SALARY) FROM EMPLOYEES GROUP BY DEPARTMENT;
Query ini awalnya membentuk hasil yang mengelompokkan departemen. Selanjutnya, MAX fungsi dilakukan pada setiap kelompok departemen, dan akhirnya, kita akan mendapatkan hasil yang diinginkan seperti yang ditunjukkan di bawah ini:
PESAN BERDASARKAN Klausul
Klausa GROUP BY dan klausa ORDER BY dapat digunakan dengan pernyataan SELECT. Dalam kueri SQL, kami menggunakan klausa ORDER BY untuk mengurutkan catatan yang dikembalikan oleh kueri dalam urutan menaik atau menurun. Jika kami tidak menyebutkan urutan pengurutan, seluruh hasil akan diurutkan secara default dalam urutan menaik.
Di bawah ini adalah Sintaks untuk menggunakan Klausa ORDER BY dalam query SQL
SELECT * FROM TABLENAME ORDER BY [ASC | DESC];
Mari kita memahami klausa ORDER BY dengan bantuan beberapa contoh. Perhatikan tabel berikut beserta catatan yang diberikan.
Tabel:Karyawan
KARYAWAN | FIRST_NAME | LAST_NAME | GAJI | KOTA | DEPARTEMEN | MANAGERID | JAM_KERJA | GENDER |
1001 | VAIBHAVI | MISHRA | 65000 | PUNE | ORACLE | 1 | 12 | B |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | ORACLE | 1 | 9 | M |
1003 | NIKHIL | VANI | 50.000 | JAIPUR | FMW | 2 | 10 | M |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACLE | 1 | 10 | B |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 | 12 | M |
2003 | RUCHIKA | JAIN | 50.000 | MUMBAI | UJI | 4 | 9 | B |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 | 9 | B |
3002 | ANUJA | DIMANA | 50500 | JAIPUR | FMW | 2 | 9 | B |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 | 12 | M |
4001 | RAJESH | BAIK | 60500 | MUMBAI | UJI | 4 | 10 | M |
Contoh 1: Misalkan kita ingin mengatur hasil dalam urutan yang diurutkan, baik menaik atau menurun, berdasarkan kolom nama depan. Dalam hal ini, kami ingin menggunakan klausa ORDER BY untuk mendapatkan hasilnya. Untuk melakukan ini, kami akan menjalankan kueri di bawah ini sebagai berikut:
SELECT * FROM EMPLOYEES ORDER BY FIRST_NAME ASC;
Perbedaan Kunci antara GROUP BY dan ORDER BY
Berikut ini adalah hal-hal yang membedakan antara klausa GROUP BY dan ORDER BY:
- Pernyataan GROUP BY dalam SQL digunakan untuk mengelompokkan record berdasarkan nilai yang sama dalam kolom tertentu. Di sisi lain, klausa ORDER BY dalam SQL digunakan untuk mengurutkan hasil tampilan dalam urutan menaik atau menurun.
- Saat melakukan kueri menggunakan klausa GROUP BY dalam kueri SQL, wajib menggunakan fungsi agregat. Di sisi lain, saat menggunakan klausa ORDER BY di SQ, tidak wajib menggunakan fungsi agregat.
- Klausa GROUP BY selalu ditempatkan dalam query SQL setelah klausa WHERE tetapi sebelum klausa ORDER BY. Di sisi lain, klausa ORDER BY selalu ditempatkan setelah klausa GROUP BY.
Bagan Perbandingan
SR.NO | GROUP BY | PESAN OLEH |
1 | Klausa GROUP BY digunakan untuk mengelompokkan baris dengan nilai yang sama. | Klausa ORDER BY digunakan untuk mengurutkan hasil baik secara descending maupun ascending |
2 | Ini mengontrol penyajian baris | Ini mengontrol presentasi kolom |
3 | klausa GROUP BY selalu ditempatkan sebelum klausa ORDER BY. | klausa ORDER BY selalu ditempatkan setelah klausa GROUP BY. |
4 | Ini adalah wajib untuk menggunakan fungsi agregat | Tidak wajib menggunakan fungsi agregat |
5 | Atribut tidak boleh berada di bawah fungsi agregat | dalam pernyataan GROUP BY. Atribut dapat berada di bawah fungsi agregat dalam pernyataan ORDER BY. |