Ответ
GROUP BY — ключевой оператор для агрегации данных в SQL. В тестировании он применяется для проверки корректности расчетов, формирования отчетов и анализа данных.
Основное использование:
-- Подсчет количества заказов по статусам
SELECT status, COUNT(*) as order_count
FROM orders
GROUP BY status;
-- Расчет средней суммы и общего дохода по категориям товаров
SELECT category_id,
AVG(price) as avg_price,
SUM(price * quantity) as total_revenue
FROM order_items
GROUP BY category_id;
Ключевые аспекты для тестирования:
- Корректность агрегации: Сверка результатов
SUM,COUNT,AVG,MIN,MAXс ожидаемыми значениями на тестовом наборе данных. - Фильтрация групп (HAVING): Проверка, что
HAVINGкорректно отфильтровывает группы, в отличие отWHERE, который фильтрует строки.-- Найти категории с более чем 10 заказами SELECT category_id, COUNT(*) as cnt FROM orders GROUP BY category_id HAVING COUNT(*) > 10; - Группировка по нескольким полям: Проверка вложенных итогов.
SELECT department, team, COUNT(*) as emp_count FROM employees GROUP BY department, team; - Производительность: На больших таблицах
GROUP BYбез индексов по группируемым полям может быть медленным. Важно проверять время выполнения запросов.
Практика: Часто использую подобные запросы для создания тестовых дата-сетов, проверки бизнес-логики отчетных модулей и анализа данных в БД после выполнения тестовых сценариев.