Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Cara menggunakan klausa GROUP BY dalam SQL

Dalam artikel SQL ini, kita akan belajar tentang klausa GROUP BY dan cara menggunakannya dalam SQL. Kita juga akan membahas penggunaan klausa GROUP BY dengan klausa WHERE.

Apa yang dimaksud dengan klausa GROUP BY?

Klausa GROUP BY adalah klausa SQL yang digunakan dalam pernyataan SELECT untuk mengelola catatan yang sama dari kolom dalam grup menggunakan fungsi SQL.

Sintaks klausa GROUP BY:

SELECT columnname1, columnname2, columnname3 FROM tablename GROUP BY columnname;

Kita dapat menggunakan beberapa kolom dari tabel dalam klausa GROUP BY.

Ada beberapa langkah, kita harus belajar bagaimana menggunakan klausa GROUP BY dalam query SQL:

1. Buat database baru atau gunakan database yang sudah ada dengan memilih database menggunakan kata kunci USE diikuti dengan nama database.

2. Buat tabel baru di dalam database yang dipilih, atau Anda dapat menggunakan tabel yang sudah dibuat.

3. Jika tabel baru dibuat, masukkan catatan dalam database yang baru dibuat menggunakan kueri INSERT dan lihat data yang dimasukkan menggunakan kueri SELECT tanpa klausa GROUP BY.

4. Sekarang, kita siap untuk menggunakan klausa GROUP BY dalam query SQL.

Langkah 1:Buat database baru atau gunakan database yang sudah dibuat.

Saya sudah membuat database. Saya akan menggunakan nama database yang sudah saya buat, Perusahaan.

USE Company;

Perusahaan adalah nama database.

Bagi yang belum membuat database, ikuti query di bawah ini untuk membuat database:

CREATE DATABASE database_name;

Setelah membuat database, pilih database menggunakan kata kunci USE diikuti dengan nama database.

Langkah 2:Buat tabel baru atau gunakan tabel yang sudah ada:

Saya sudah membuat tabel. Saya akan menggunakan tabel yang ada bernama Karyawan.

Untuk membuat tabel baru, ikuti sintaks CREATE TABLE di bawah ini:

CREATE TABLE table_name(

columnname1 datatype(column size),

columnname2 datatype(column size),

columnname3 datatype(column size)

);

Langkah 3:Sisipkan rekaman ke dalam tabel yang baru dibuat menggunakan kueri INSERT dan lihat rekaman menggunakan kueri SELECT.

Gunakan sintaks berikut untuk menyisipkan catatan baru dalam tabel:

INSERT INTO table_name VALUES(value1, value2, value3);

Gunakan sintaks berikut untuk melihat catatan dari tabel:

SELECT * FROM table_name;

Kueri berikut akan menampilkan catatan Karyawan:

SELECT * FROM Employees;

Output dari query SELECT di atas adalah:

KARYAWAN FIRST_NAME LAST_NAME GAJI KOTA DEPARTEMEN MANAGERID
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
1002 VAIBHAV SHARMA 60000 NOIDA C# 5
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50.000 MUMBAI C# 5
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA WANRE 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH BAIK 60500 MUMBAI UJI 4
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
4003 RUCHIKA AGRWAL 60000 DELHI ORACLE 1
5001 ARKIT SHARMA 55500 DELHI UJI 4
5002 SANKET CHAUHAN 70000 HYDERABAD JAVA 3
5003 ROSHAN NEHTE 48500 CHANDIGARH C# 5
6001 RAHUL NIKAM 54500 BANGALORE UJI 4
6002 ATIS JADHAV 60500 BANGALORE C# 5
6003 NIKITA INGALE 65000 HYDERABAD ORACLE 1

Langkah 4:Kami siap menggunakan klausa GROUP BY dalam kueri

Sekarang kita akan mempelajari lebih dalam klausa GROUP BY dengan bantuan contoh

Contoh 1: Tulis kueri untuk menampilkan grup catatan karyawan menurut kota.

SELECT * FROM EMPLOYEES GROUP BY CITY;

Kueri di atas menampilkan catatan karyawan di mana seorang karyawan dari kota yang sama akan dianggap satu grup. Misalnya, jika ada 10 record pegawai dalam tabel dimana 3 dari kota Pune, 3 dari kota Mumbai, 2 dari Hyderabad dan Bangalore, maka query di atas akan mengelompokkan pegawai kota Pune pegawai kota Mumbai sebagai satu record, dan seterusnya .

Output dari query di atas:

KARYAWAN FIRST_NAME LAST_NAME GAJI KOTA DEPARTEMEN MANAGERID
6001 RAHUL NIKAM 54500 BANGALORE UJI 4
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
4003 RUCHIKA AGRWAL 60000 DELHI ORACLE 1
5002 SANKET CHAUHAN 70000 HYDERABAD JAVA 3
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2003 RUCHIKA JAIN 50.000 MUMBAI C# 5
1002 VAIBHAV SHARMA 60000 NOIDA C# 5
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1

Seperti yang dapat kita lihat bahwa catatan karyawan dikelompokkan berdasarkan kota, dan catatan ditampilkan dalam urutan menaik secara default.

Contoh 2: Tulis kueri untuk menampilkan grup catatan karyawan berdasarkan gaji dalam urutan menurun.

SELECT * FROM EMPLOYEES GROUP BY SALARY DESC; 

Kueri di atas menampilkan catatan karyawan di mana karyawan dengan gaji yang sama akan dianggap sebagai satu kelompok, dan catatan akan ditampilkan dalam urutan menurun.

Keluaran dari kueri di atas:

KARYAWAN FIRST_NAME LAST_NAME GAJI KOTA DEPARTEMEN MANAGERID
5002 SANKET CHAUHAN 70000 HYDERABAD JAVA 3
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
6003 NIKITA INGALE 65000 HYDERABAD ORACLE 1
4001 RAJESH BAIK 60500 MUMBAI UJI 4
1002 VAIBHAV SHARMA 60000 NOIDA C# 5
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2003 RUCHIKA JAIN 50.000 MUMBAI C# 5
5003 ROSHAN NEHTE 48500 CHANDIGARH C# 5

Seperti yang bisa kita lihat, catatan karyawan dikelompokkan berdasarkan gaji, dan catatan ditampilkan dalam urutan menurun, seperti yang kami sebutkan di akhir.

Contoh 3: Tulis kueri untuk menampilkan grup catatan karyawan berdasarkan gaji dan kota.

SELECT * FROM EMPLOYEES GROUP BY SALARY, CITY;

Kueri di atas menampilkan catatan karyawan di mana karyawan dengan gaji dan kota yang sama akan dianggap sebagai satu grup.

Misalnya, tabel memiliki 10 catatan karyawan. Dari 10 karyawan 2 gaji karyawan dan kota cocok dengan dua karyawan lainnya dan sisanya gaji enam karyawan dan kota tidak ada bandingannya maka 6 karyawan akan dianggap sebagai 6 kelompok terpisah, dan 2 karyawan yang cocok dengan 2 karyawan lainnya akan dianggap sebagai satu kelompok . Singkatnya, 8 grup akan terbentuk.

Keluaran dari kueri di atas:

KARYAWAN FIRST_NAME LAST_NAME GAJI KOTA DEPARTEMEN MANAGERID
5003 ROSHAN NEHTE 48500 CHANDIGARH C# 5
2003 RUCHIKA JAIN 50.000 MUMBAI C# 5
1003 NIKHIL VANI 50500 JAIPUR FMW 2
6001 RAHUL NIKAM 54500 BANGALORE UJI 4
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
5001 ARKIT SHARMA 55500 DELHI UJI 4
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4003 RUCHIKA AGRWAL 60000 DELHI ORACLE 1
1002 VAIBHAV SHARMA 60000 NOIDA C# 5
6002 ATIS JADHAV 60500 BANGALORE C# 5
4001 RAJESH BAIK 60500 MUMBAI UJI 4
6003 NIKITA INGALE 65000 HYDERABAD ORACLE 1
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
5002 SANKET CHAUHAN 70000 HYDERABAD JAVA 3

Seperti yang bisa kita lihat, catatan karyawan dikelompokkan berdasarkan gaji dan kota, dan catatan ditampilkan dalam urutan menaik secara default.

Contoh 4: Tulis kueri untuk menampilkan catatan karyawan menurut kota dan departemen.

SELECT * FROM EMPLOYEES GROUP BY CITY, DEPARTMENT;

Kueri di atas menampilkan catatan karyawan di mana karyawan berada di kota yang sama, dan departemen akan dianggap sebagai satu grup.

Keluaran dari kueri di atas:

KARYAWAN FIRST_NAME LAST_NAME GAJI KOTA DEPARTEMEN MANAGERID
6002 ATIS JADHAV 60500 BANGALORE C# 5
6001 RAHUL NIKAM 54500 BANGALORE UJI 4
5003 ROSHAN NEHTE 48500 CHANDIGARH C# 5
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
4003 RUCHIKA AGRWAL 60000 DELHI ORACLE 1
5001 ARKIT SHARMA 55500 DELHI UJI 4
5002 SANKET CHAUHAN 70000 HYDERABAD JAVA 3
6003 NIKITA INGALE 65000 HYDERABAD ORACLE 1
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2003 RUCHIKA JAIN 50.000 MUMBAI C# 5
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH BAIK 60500 MUMBAI UJI 4
1002 VAIBHAV SHARMA 60000 NOIDA C# 5
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
2002 BHAVESH JAIN 65500 PUNE FMW 2
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1

Seperti yang dapat kita lihat, catatan karyawan dikelompokkan berdasarkan kota dan departemen, dan catatan ditampilkan dalam urutan menaik secara default.

Contoh 5: Tulis kueri untuk menghitung daftar karyawan di setiap departemen dari tabel karyawan.

SELECT DEPARTMENT, COUNT(DEPARTMENT) FROM EMPLOYEES GROUP BY DEPARTMENT;

Kueri di atas menampilkan jumlah karyawan di setiap grup departemen menurut departemen. Seperti Enam karyawan bekerja di departemen SDM, lima bekerja di departemen lain.

Keluaran dari kueri di atas:

DEPARTEMEN JUMLAH(DEPARTEMEN)
C# 4
FMW 3
JAVA 4
ORACLE 4
UJI 3

Seperti yang kita lihat, empat karyawan bekerja di Departemen C#, tiga bekerja di Departemen FMW, dll.

Contoh 6: Tulis kueri untuk menghitung daftar karyawan dari setiap kota dari tabel karyawan.

SELECT CITY, COUNT(CITY) FROM EMPLOYEES GROUP BY CITY;

Kueri di atas menampilkan jumlah karyawan di setiap kelompok kota menurut kota. Seperti tiga karyawan bekerja dari kota Pune, empat bekerja dari kota lain, dan seterusnya.

Output dari query di atas:

KOTA COUNT(CITY)
BANGALORE 2
CHANDIGARH 2
DELHI 2
HYDERABAD 2
JAIPUR 2
MUMBAI 3
NOIDA 2
PUNE 3

Seperti yang kita lihat, dua karyawan bekerja dari kota Bangalore, tiga bekerja dari kota Mumbai, dan seterusnya.

Contoh 7: Tulis kueri untuk menjumlahkan kelompok gaji karyawan menurut kota.

SELECT CITY, SUM(SALARY) AS SALARY FROM EMPLOYEES GROUP BY CITY;

Di atas digunakan untuk menjumlahkan gaji karyawan yang dikelompokkan berdasarkan nama kota. Misalnya, untuk karyawan dari kota yang sama, gaji mereka akan dijumlahkan dan dianggap satu kelompok. Kami menggunakan fungsi penjumlahan agregat diikuti oleh kolom gaji untuk menambahkan gaji.

Keluaran dari kueri di atas:

KOTA GAJI
BANGALORE 115000
CHANDIGARH 104000
DELHI 115500
HYDERABAD 135.000
JAIPUR 101000
MUMBAI 169.000
NOIDA 114500
PUNE 186500

Seperti yang bisa kita lihat, gaji total kota Bangalore adalah 115.000, jumlah gaji kota Chandigarh adalah 104000 yang merupakan penambahan gaji karyawan yang berbeda, tetapi dari kota, pendekatan yang sama digunakan untuk setiap kota.

Contoh 8: Tulis kueri untuk menemukan gaji minimum dari setiap departemen.

SELECT DEPARTMENT, MIN(SALARY) FROM EMPLOYEES GROUP BY DEPARTMENT;

Query di atas digunakan untuk mencari gaji minimum karyawan dari masing-masing departemen. Gaji salah satu pegawai dari departemen jawa adalah 54.500, yang merupakan yang terendah di seluruh departemen jawa. 48.500 yang sama adalah gaji terendah yang dibayarkan kepada karyawan di departemen C#.

Keluaran dari kueri di atas:

DEPARTEMEN MIN(GAJI)
C# 48500
FMW 50500
JAVA 54500
ORACLE 55500
UJI 54500

Seperti yang bisa kita lihat, 50500 adalah gaji terendah yang dibayarkan kepada salah satu karyawan di departemen FMW, 55500 adalah gaji terendah yang dibayarkan kepada salah satu karyawan di departemen ORACLE.

Contoh 9: Tulis kueri untuk menemukan gaji minimum dari setiap kota.

SELECT CITY, MAX(SALARY) FROM EMPLOYEES GROUP BY CITY;

Query di atas digunakan untuk mencari gaji maksimum dari setiap kota. Gaji salah satu karyawan dari kota Pune adalah 65.500 yang merupakan yang tertinggi di seluruh kota Pune, 60.500 yang sama adalah gaji tertinggi yang dibayarkan kepada karyawan di kota Mumbai.

Output dari query di atas:

KOTA MAX(GAJI)
BANGALORE 60500
CHANDIGARH 55500
DELHI 60000
HYDERABAD 70000
JAIPUR 50500
MUMBAI 60500
NOIDA 60000
PUNE 65500

Seperti yang kita lihat, 50.500 adalah gaji tertinggi yang dibayarkan kepada salah satu karyawan di kota Jaipur, 55.500 adalah gaji tertinggi yang dibayarkan kepada salah satu karyawan di kota Chandigarh.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Indeks SQL DROP, Tabel DROP, dan Pernyataan Basis Data DROP Dijelaskan dengan Contoh

  2. Risiko Saat Menggunakan Memori Dinamis dalam Hyper-V

  3. Bagian 3 – Pelanggan, Panggilan, dan Rapat

  4. Pengantar Concurrent Collection API di Java

  5. Pengantar Penskalaan Otomatis Amazon Web Services (AWS)