Двойная группировка в SQL: использование оператора GROUP BY для агрегации данных по двум столбцам

Двойная группировка в SQL

Введение

SQL (Structured Query Language) является стандартным языком для работы с реляционными базами данных. Одним из основных операторов SQL является оператор GROUP BY, который позволяет сгруппировать данные по одному или нескольким столбцам. В некоторых случаях может потребоваться выполнить двойную группировку, то есть сгруппировать данные по двум столбцам одновременно. В этой статье мы рассмотрим, как использовать двойную группировку в SQL.

Шаг 1: Создание таблицы

Прежде чем мы начнем использовать двойную группировку, нам понадобится таблица с данными. Давайте создадим простую таблицу «employees» со следующими столбцами: «name» (имя сотрудника), «department» (отдел, в котором работает сотрудник) и «salary» (зарплата сотрудника).

CREATE TABLE employees (
    name VARCHAR(50),
    department VARCHAR(50),
    salary INT
);

Шаг 2: Заполнение таблицы данными

Теперь, когда у нас есть таблица, давайте заполним ее данными. Вставим несколько записей в таблицу «employees» с различными именами, отделами и зарплатами.

INSERT INTO employees (name, department, salary)
VALUES ('John', 'Sales', 5000),
       ('Jane', 'Sales', 6000),
       ('Mike', 'HR', 4000),
       ('Sarah', 'HR', 4500),
       ('David', 'IT', 7000),
       ('Emily', 'IT', 8000);

Шаг 3: Выполнение двойной группировки

Теперь, когда у нас есть данные, мы можем выполнить двойную группировку. Для этого мы будем использовать оператор GROUP BY с двумя столбцами.

SELECT department, name, AVG(salary) AS avg_salary
FROM employees
GROUP BY department, name;

В этом примере мы выбираем столбцы «department» и «name», а также вычисляем среднюю зарплату с помощью функции AVG(salary). Затем мы группируем данные по столбцам «department» и «name» с помощью оператора GROUP BY.

Шаг 4: Результаты двойной группировки

После выполнения запроса мы получим результаты двойной группировки. В нашем примере результаты будут содержать отдел, имя сотрудника и среднюю зарплату для каждого сотрудника в каждом отделе.

+------------+-------+------------+
| department | name  | avg_salary |
+------------+-------+------------+
| Sales      | John  | 5000       |
| Sales      | Jane  | 6000       |
| HR         | Mike  | 4000       |
| HR         | Sarah | 4500       |
| IT         | David | 7000       |
| IT         | Emily | 8000       |
+------------+-------+------------+

Заключение

Двойная группировка в SQL позволяет сгруппировать данные по двум столбцам одновременно. Она полезна, когда требуется агрегировать данные на основе двух разных атрибутов. В этой статье мы рассмотрели пример использования двойной группировки с помощью оператора GROUP BY в SQL.

Оцените статью