17:20
Группировка данных: Команда GROUP BY.

Курс по SQL

Урок 21: Группировка данных: Команда GROUP BY

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

Использование команды GROUP BY

Команда GROUP BY используется вместе с агрегатными функциями, такими как COUNT, SUM, AVG, MAX и MIN, для выполнения вычислений по группам строк. Рассмотрим пример подсчета количества студентов в каждом классе:

SELECT Класс, COUNT(*) AS КоличествоСтудентов
FROM Студенты
GROUP BY Класс;

Результат выполнения

Класс КоличествоСтудентов
10-А 20
10-Б 18

Комбинирование с HAVING

Команда HAVING используется для фильтрации результатов, полученных после группировки. Это аналог команды WHERE, но применяется к агрегатным функциям. Рассмотрим пример выборки классов, в которых количество студентов больше 15:

SELECT Класс, COUNT(*) AS КоличествоСтудентов
FROM Студенты
GROUP BY Класс
HAVING COUNT(*) > 15;

Результат выполнения

Класс КоличествоСтудентов
10-А 20
10-Б 18

Группировка по нескольким столбцам

Вы можете группировать данные по нескольким столбцам. Рассмотрим пример группировки студентов по классу и году поступления:

SELECT Класс, ГодПоступления, COUNT(*) AS КоличествоСтудентов
FROM Студенты
GROUP BY Класс, ГодПоступления;

Результат выполнения

Класс ГодПоступления КоличествоСтудентов
10-А 2020 10
10-А 2021 10
10-Б 2020 9
10-Б 2021 9

Использование агрегатных функций с GROUP BY

Агрегатные функции могут быть использованы с командой GROUP BY для выполнения различных вычислений по группам строк. Рассмотрим пример вычисления средней суммы заказов для каждого клиента:

SELECT КлиентID, AVG(Сумма) AS СредняяСумма
FROM Заказы
GROUP BY КлиентID;

Результат выполнения

КлиентID СредняяСумма
1 120.00
2 150.00

Упражнения

Упражнение 1: Подсчет количества заказов для каждого клиента

Подсчитайте количество заказов для каждого клиента в таблице «Заказы».

Решение:

SELECT КлиентID, COUNT(*) AS КоличествоЗаказов
FROM Заказы
GROUP BY КлиентID;

Объяснение: Мы использовали команду GROUP BY для группировки заказов по клиентам и функцию COUNT для подсчета количества заказов.

Упражнение 2: Вычисление общей суммы заказов для каждого клиента

Вычислите общую сумму заказов для каждого клиента в таблице «Заказы».

Решение:

SELECT КлиентID, SUM(Сумма) AS ОбщаяСумма
FROM Заказы
GROUP BY КлиентID;

Объяснение: Мы использовали команду GROUP BY для группировки заказов по клиентам и функцию SUM для вычисления общей суммы заказов.

Упражнение 3: Подсчет количества студентов в каждом классе

Подсчитайте количество студентов в каждом классе в таблице «Студенты».

Решение:

SELECT Класс, COUNT(*) AS КоличествоСтудентов
FROM Студенты
GROUP BY Класс;

Объяснение: Мы использовали команду GROUP BY для группировки студентов по классу и функцию COUNT для подсчета количества студентов.

Упражнение 4: Вычисление средней суммы заказов для каждого клиента

Вычислите среднюю сумму заказов для каждого клиента в таблице «Заказы».

Решение:

SELECT КлиентID, AVG(Сумма) AS СредняяСумма
FROM Заказы
GROUP BY КлиентID;

Объяснение: Мы использовали команду GROUP BY для группировки заказов по клиентам и функцию AVG для вычисления средней суммы заказов.

Категория: SQL | Просмотров: 19 | Добавил: Admin | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: