Apache Derby - Maddeye Göre Gruplama

GROUP BY yan tümcesi, SELECT deyimleriyle kullanılır. Aynı veriler olması durumunda alt kümeler oluşturmak için kullanılır. Genellikle, bu cümlenin ardından ORDER BY cümleciği gelir ve WHERE cümlesinden sonra yerleştirilir.

Sözdizimi

GROUP BY cümlesinin sözdizimi aşağıdadır -

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

Misal

Veritabanında aşağıdaki kayıtlara sahip Çalışanlar adlı bir tablomuz olduğunu varsayalım -

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

Aşağıdaki GROUP BY yan tümcesine sahip SELECT deyimi, tabloyu konuma göre gruplandırır. Bir lokasyonda çalışanlara verilen toplam maaş miktarını gösterir.

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

Bu, aşağıdaki çıktıyı üretecektir -

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

Aynı şekilde aşağıdaki sorgu, bir lokasyonda çalışanlara maaş olarak harcanan ortalama tutarı bulur.

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

Bu, aşağıdaki çıktıyı üretecektir -

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

Group By yan tümcesi JDBC örneği

Bu bölüm, JDBC uygulamasını kullanarak Apache Derby veritabanındaki bir tabloda Group By yan tümcesini nasıl kullanacağınızı ve CURD işlemlerini nasıl gerçekleştireceğinizi öğretir.

Ağ istemcisini kullanarak Derby ağ sunucusunu talep etmek istiyorsanız, sunucunun çalışır durumda olduğundan emin olun. Ağ istemci sürücüsünün sınıf adı org.apache.derby.jdbc.ClientDriver ve URL jdbc: derby: // localhost: 1527 / şeklindedir.DATABASE_NAME;create = true; user =USER_NAME;passw ord =PASSWORD"

Group By yan tümcesini kullanmak ve Apache Derby'de bir tablo üzerinde CURD işlemleri gerçekleştirmek için aşağıdaki adımları izleyin.

Adım 1: Sürücüyü kaydedin

Veritabanıyla iletişim kurmak için öncelikle sürücüyü kaydetmeniz gerekir. forName() sınıfın yöntemi Classbir sınıf adını temsil eden bir String değerini kabul eder, onu otomatik olarak kaydeden belleğe yükler. Bu yöntemi kullanarak sürücüyü kaydedin.

2. Adım: Bağlantıyı alın

Genel olarak, veri tabanıyla iletişim kurmak için yaptığımız ilk adım, onunla bağlantı kurmaktır. Connectionclass, bir veritabanı sunucusuyla fiziksel bağlantıyı temsil eder. Çağırarak bir bağlantı nesnesi oluşturabilirsiniz.getConnection() yöntemi DriverManagersınıf. Bu yöntemi kullanarak bir bağlantı oluşturun.

Adım 3: Bir ifade nesnesi oluşturun

Bir yaratmanız gerekiyor Statement veya PreparedStatement veya, CallableStatementveritabanına SQL ifadeleri göndermek için nesneler. Yöntemleri kullanarak bunları oluşturabilirsinizcreateStatement(), prepareStatement() and, prepareCall()sırasıyla. Uygun yöntemi kullanarak bu nesnelerden birini oluşturun.

4. Adım: Sorguyu yürütün

Bir ifade oluşturduktan sonra, onu yürütmeniz gerekir. Statement sınıfı, bir sorguyu yürütmek için çeşitli yöntemler sağlar. execute()Birden fazla sonuç kümesi döndüren bir ifadeyi yürütme yöntemi. executeUpdate()yöntemi INSERT, UPDATE, DELETE gibi sorguları yürütmek için kullanılır. executeQuery()yöntem veri döndürür. Bu yöntemlerden birini kullanın ve önceden oluşturulan ifadeyi çalıştırın.

Misal

Aşağıdaki JDBC örneği nasıl kullanılacağını gösterir Group ByJDBC programını kullanarak Apache Derby'de bir tablo üzerinde CURD işlemlerini cümle tümcesi ve gerçekleştirir. Burada, gömülü sürücüyü kullanarak sampleDB (yoksa yaratacaktır) adlı bir veritabanına bağlanıyoruz.

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(" ");
      }
   }
}

Çıktı

Yukarıdaki programı çalıştırırken aşağıdaki çıktıyı alacaksınız -

Location: Hyderabad
Sum of salary: 120000

Location: Lucknow
Sum of salary: 71000

Location: Vishakhapatnam
Sum of salary: 93000