Apache Derby - KELOMPOK DENGAN Klausul

Klausa GROUP BY digunakan dengan pernyataan SELECT. Ini digunakan untuk membentuk subset jika ada data yang identik. Biasanya, klausa ini diikuti oleh klausa ORDER BY dan ditempatkan setelah klausa WHERE.

Sintaksis

Berikut ini adalah sintaks klausa GROUP BY -

ij>SELECT column1, column2, . . . table_name GROUP BY column1, column2, . . .;

Contoh

Misalkan kita memiliki tabel bernama Karyawan di database dengan catatan berikut -

ID |NAME |SALARY |LOCATION
------------------------------------------------------------------
1 |Amit |30000 |Hyderabad
2 |Rahul |39000 |Lucknow
3 |Renuka |50000 |Hyderabad
4 |Archana |15000 |Vishakhapatnam
5 |Kalyan |40000 |Hyderabad
6 |Trupthi |45000 |Vishakhapatnam
7 |Raghav |12000 |Lucknow
8 |Suchatra |33000 |Vishakhapatnam
9 |Rizwan |20000 |Lucknow

Pernyataan SELECT berikut dengan klausa GROUP BY mengelompokkan tabel berdasarkan lokasi. Ini menampilkan jumlah total gaji yang diberikan kepada karyawan di suatu lokasi.

ij> SELECT Location, SUM(Salary) from Employees GROUP BY Location;

Ini akan menghasilkan keluaran berikut -

LOCATION |2
-------------------------------------------------------
Hyderabad |120000
Lucknow |71000
Vishakhapatnam |93000
3 rows selected

Dengan cara yang sama, kueri berikut menemukan jumlah rata-rata yang dibelanjakan pada karyawan sebagai gaji di suatu lokasi.

ij> SELECT Location, AVG(Salary) from Employees GROUP BY Location;

Ini akan menghasilkan keluaran berikut -

LOCATION |2
-----------------------------------------------------
Hyderabad |40000
Lucknow |23666
Vishakhapatnam |31000
3 rows selected

Kelompok Dengan klausa contoh JDBC

Bagian ini mengajarkan Anda bagaimana menggunakan klausa Group By dan melakukan operasi CURD pada tabel di database Apache Derby menggunakan aplikasi JDBC.

Jika Anda ingin meminta server jaringan Derby menggunakan klien jaringan, pastikan bahwa server aktif dan berjalan. Nama kelas untuk driver klien Jaringan adalah org.apache.derby.jdbc.ClientDriver dan URL-nya adalah jdbc: derby: // localhost: 1527 /DATABASE_NAME;buat = benar; pengguna =USER_NAME;passw ord =PASSWORD"

Ikuti langkah-langkah yang diberikan di bawah ini untuk menggunakan klausa Group By dan melakukan operasi CURD di atas meja di Apache Derby

Langkah 1: Daftarkan driver

Untuk berkomunikasi dengan database, pertama-tama, Anda perlu mendaftarkan driver. ItuforName() metode kelas Classmenerima nilai String yang mewakili nama kelas memuatnya ke memori, yang secara otomatis mendaftarkannya. Daftarkan driver menggunakan metode ini.

Langkah 2: Dapatkan koneksi

Secara umum, langkah pertama yang kita lakukan untuk berkomunikasi dengan database adalah menghubungkannya. ItuConnectionkelas mewakili koneksi fisik dengan server database. Anda dapat membuat objek koneksi dengan menjalankangetConnection() metode dari DriverManagerkelas. Buat koneksi menggunakan metode ini.

Langkah 3: Buat objek pernyataan

Anda perlu membuat file Statement atau PreparedStatement atau, CallableStatementobjek untuk mengirim pernyataan SQL ke database. Anda dapat membuatnya menggunakan metodecreateStatement(), prepareStatement() and, prepareCall()masing-masing. Buat salah satu dari objek ini menggunakan metode yang sesuai.

Langkah 4: Jalankan kueri

Setelah membuat pernyataan, Anda perlu menjalankannya. ItuStatement kelas menyediakan berbagai metode untuk mengeksekusi kueri seperti execute()metode untuk mengeksekusi pernyataan yang mengembalikan lebih dari satu kumpulan hasil. ItuexecuteUpdate()metode digunakan untuk mengeksekusi query seperti INSERT, UPDATE, DELETE. ItuexecuteQuery()metode mengembalikan data. Gunakan salah satu dari metode ini dan jalankan pernyataan yang dibuat sebelumnya.

Contoh

Mengikuti contoh JDBC mendemonstrasikan cara menggunakan Group Byklausa dan melakukan operasi CURD di atas meja di Apache Derby menggunakan program JDBC. Di sini, kami menghubungkan ke database bernama sampleDB (akan dibuat jika tidak ada) menggunakan driver tertanam.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
public class GroupByClauseExample {
   public static void main(String args[]) throws Exception {
      //Registering the driver
      Class.forName("org.apache.derby.jdbc.EmbeddedDriver");

      //Getting the Connection object
      String URL = "jdbc:derby:sampleDB;create=true";
      Connection conn = DriverManager.getConnection(URL);

      //Creating the Statement object
      Statement stmt = conn.createStatement();

      //Creating a table and populating it
      stmt.execute("CREATE TABLE EmployeesData( "
         + "Id INT NOT NULL GENERATED ALWAYS AS IDENTITY, "
         + "Name VARCHAR(255), "
         + "Salary INT NOT NULL, "
         + "Location VARCHAR(255), "
         + "PRIMARY KEY (Id))");
      stmt.execute("INSERT INTO EmployeesData(Name, Salary, Location) "
         + "VALUES ('Amit', 30000, 'Hyderabad'), "
         + "('Rahul', 39000, 'Lucknow'), "
         + "('Renuka', 50000, 'Hyderabad'), "
         + "('Archana', 15000, 'Vishakhapatnam'), "
         + "('Kalyan', 40000, 'Hyderabad'), "
         + "('Trupthi', 45000, 'Vishakhapatnam'), "
         + "('Raghav', 12000, 'Lucknow'), "
         + "('Suchatra', 33000, 'Vishakhapatnam'), "
         + "('Rizwan', 20000, 'Lucknow')");

      //Executing the query
      String query = "SELECT Location, SUM(Salary) from EmployeesData GROUP BY Location";
      ResultSet rs = stmt.executeQuery(query);
      while(rs.next()) {
         System.out.println("Location: "+rs.getString(1));
         System.out.println("Sum of salary: "+rs.getString(2));
         System.out.println(" ");
      }
   }
}

Keluaran

Saat menjalankan program di atas, Anda akan mendapatkan output berikut -

Location: Hyderabad
Sum of salary: 120000

Location: Lucknow
Sum of salary: 71000

Location: Vishakhapatnam
Sum of salary: 93000