Вопрос проверяет умение использовать GROUP BY для группировки и агрегации данных в SQL, что необходимо для получения сводной информации из таблиц.
GROUP BY — это ключевое предложение SQL, используемое для объединения строк с одинаковыми значениями в указанных столбцах в сводные строки. Оно работает в паре с агрегатными функциями, такими как COUNT(), SUM(), AVG(), MAX() и MIN(), которые выполняют вычисления над каждой группой, а не над всей таблицей целиком.
Когда вы выполняете запрос с GROUP BY, база данных сначала выбирает строки, соответствующие условиям WHERE, затем сортирует их по столбцам, указанным в GROUP BY, и, наконец, объединяет строки с одинаковыми значениями в эти группы. Для каждой группы можно вычислить агрегатные значения.
Предположим, у нас есть таблица orders с колонками order_id, customer_id, amount и order_date.
-- Подсчет количества заказов для каждого клиента
SELECT customer_id, COUNT(*) AS order_count
FROM orders
GROUP BY customer_id;
-- Сумма продаж по каждому клиенту
SELECT customer_id, SUM(amount) AS total_spent
FROM orders
GROUP BY customer_id;
-- Средний чек по дням
SELECT order_date, AVG(amount) AS avg_amount
FROM orders
GROUP BY order_date;GROUP BY customer_id, order_date.GROUP BY широко применяется в отчетности, аналитике данных и веб-приложениях для построения дашбордов, где требуется сводная информация по категориям, пользователям или периодам времени.
Вывод: Используйте GROUP BY, когда вам нужно сгруппировать данные по определенным признакам и вычислить статистические показатели (количество, сумму, среднее) для каждой группы, что является основой для аналитических запросов в реляционных базах данных.