💀
Второй курс РПО
Основы проектирования баз данных
Основы проектирования баз данных
  • Понятия баз данных
  • Типы моделей данных
    • Реляционные базы данных
  • Реляционная алгебра
  • Модель процессов
  • Проектирование базы данных
  • Нормальные формы
    • Определения, и самое важное
  • Моделирование базы
    • Практическая работа: Решение
    • Для тех у кого iq как у Антона
  • Инструменты проектирования
  • Проектирование БД
  • Ключи и объекты
  • SQL Операции
  • Группировка данных
  • Пользовательский интерфейс
  • Проектирование БД
  • Управление таблицами
  • Ключи и индексы
  • Сортировка и поиск
    • 🤪Короткая версия
  • Работа с файлами
  • Запись массива в таблицу
  • Меню баз данных
  • Рабочие окна
  • Создание формы
  • Создание проекта БД и интерфейса
  • Ограничения полей
  • Работа с таблицами
  • Обработка транзакций
Powered by GitBook
On this page
  • Введение в GROUP BY
  • Структура запроса
  • Пример использования GROUP BY
  • Группировка по нескольким полям
  • Фильтрация групп с помощью HAVING
  • Сортировка результатов

Группировка данных

25.10.2024

PreviousSQL ОперацииNextПользовательский интерфейс

Last updated 7 months ago

Введение в GROUP BY

Оператор GROUP BY используется для группировки данных в запросах SQL. Это позволяет получать сводную информацию о записях, а не детализированные данные о каждой строке.

Структура запроса

Основная структура запроса с GROUP BY:

SELECT [литералы, агрегатные функции, поля группировки]
FROM имя_таблицы
[WHERE условие_фильтрации_строк]
GROUP BY поля_группировки
[HAVING условие_фильтрации групп]
[ORDER BY столбцы_для_сортировки];
  • WHERE: фильтрация строк перед группировкой.

  • GROUP BY: определяет, по каким полям будет происходить группировка.

  • HAVING: фильтрация групп после их создания.

  • ORDER BY: сортировка результатов.

Пример использования GROUP BY

Чтобы сгруппировать записи по типу жилья:

SELECT home_type, AVG(price) AS avg_price
FROM Rooms
GROUP BY home_type;

Результаты

При выполнении этого запроса для каждого типа жилья будет вычислено среднее значение цены.

Группировка по нескольким полям

Можно группировать данные по нескольким полям. Например, чтобы сгруппировать по home_type и has_tv:

SELECT home_type, has_tv, COUNT(*) AS count
FROM Rooms
GROUP BY home_type, has_tv;

Фильтрация групп с помощью HAVING

Оператор HAVING позволяет фильтровать группы. Например, чтобы найти производителей, у которых более одной модели товара:

SELECT Manufacturer, COUNT(*) AS ModelsCount
FROM Products
GROUP BY Manufacturer
HAVING COUNT(*) > 1;

Совмещение WHERE и HAVING

Можно использовать оба оператора в одном запросе:

SELECT Manufacturer, COUNT(*) AS ModelsCount
FROM Products
WHERE Price > 30000
GROUP BY Manufacturer
HAVING COUNT(*) > 1;

Здесь сначала фильтруются строки, а затем уже группы.

Сортировка результатов

Для сортировки по количеству товаров можно использовать:

SELECT Manufacturer, COUNT(*) AS Models, SUM(ProductCount) AS Units
FROM Products
WHERE Price * ProductCount > 80000
GROUP BY Manufacturer
HAVING SUM(ProductCount) > 2
ORDER BY Units DESC;