Предложение GROUP BY используется с инструкциями SELECT. Он используется для формирования подмножеств в случае идентичных данных. Обычно за этим предложением следует предложение ORDER BY, которое помещается после предложения WHERE.
Синтаксис
Ниже приводится синтаксис предложения GROUP BY —
ij>SELECT column1, column2, . . . table_name GROUP BY column1, column2, . . .;
пример
Предположим, у нас есть таблица с именем Employees в базе данных со следующими записями:
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
Следующий оператор SELECT с предложением GROUP BY группирует таблицу в зависимости от местоположения. Он отображает общую сумму заработной платы, данной сотрудникам на месте.
ij> SELECT Location, SUM(Salary) from Employees GROUP BY Location;
Это сгенерирует следующий вывод —
LOCATION |2 ------------------------------------------------------- Hyderabad |120000 Lucknow |71000 Vishakhapatnam |93000 3 rows selected
Таким же образом, следующий запрос находит среднюю сумму, потраченную на сотрудников в качестве зарплаты в местоположении.
ij> SELECT Location, AVG(Salary) from Employees GROUP BY Location;
Это сгенерирует следующий вывод —
LOCATION |2 ----------------------------------------------------- Hyderabad |40000 Lucknow |23666 Vishakhapatnam |31000 3 rows selected
Пример JDBC предложения Group By
В этом разделе рассказывается, как использовать предложение Group By и выполнять операции CURD для таблицы в базе данных Apache Derby с помощью приложения JDBC.
Если вы хотите запросить сетевой сервер Derby с помощью сетевого клиента, убедитесь, что сервер запущен и работает. Имя класса для драйвера сетевого клиента — org.apache.derby.jdbc.ClientDriver, а URL-адрес — jdbc: derby: // localhost: 1527 / DATABASE_NAME; создать = true; пользователь = USER_NAME; passw ord = ПАРОЛЬ «
Следуйте приведенным ниже инструкциям, чтобы использовать предложение Group By и выполнять операции CURD с таблицей в Apache Derby.
Шаг 1: зарегистрировать драйвер
Для связи с базой данных, прежде всего, необходимо зарегистрировать драйвер. Метод forName () класса Class принимает значение String, представляющее имя класса, загружает его в память, которая автоматически регистрирует его. Зарегистрируйте драйвер, используя этот метод.
Шаг 2: Получить соединение
В общем, первый шаг, который мы делаем для связи с базой данных, это соединение с ней. Класс Connection представляет физическое соединение с сервером базы данных. Вы можете создать объект соединения, вызвав метод getConnection () класса DriverManager . Создайте соединение, используя этот метод.
Шаг 3: Создайте объект выписки
Вам необходимо создать объект Statement или PreparedStatement или CallableStatement для отправки операторов SQL в базу данных. Вы можете создать их, используя методы createStatement (), prepareStatement () и prepareCall () соответственно. Создайте любой из этих объектов, используя соответствующий метод.
Шаг 4: Выполнить запрос
После создания вы должны выполнить его. Класс Statement предоставляет различные методы для выполнения запроса, например, метод execute () для выполнения инструкции, которая возвращает более одного набора результатов. Метод executeUpdate () используется для выполнения запросов, таких как INSERT, UPDATE, DELETE. Метод executeQuery () возвращает данные. Используйте любой из этих методов и выполните оператор, созданный ранее.
пример
В следующем примере JDBC показано, как использовать предложение Group By и выполнять операции CURD с таблицей в Apache Derby с помощью программы JDBC. Здесь мы подключаемся к базе данных с именем sampleDB (создадим, если она не существует), используя встроенный драйвер.
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(" "); } } }
Выход
Выполнив вышеуказанную программу, вы получите следующий вывод: