Как вы применяете оператор SQL GROUP BY в тестировании?

«Как вы применяете оператор SQL GROUP BY в тестировании?» — вопрос из категории Базы данных и SQL, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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;

Ключевые аспекты для тестирования:

  1. Корректность агрегации: Сверка результатов SUM, COUNT, AVG, MIN, MAX с ожидаемыми значениями на тестовом наборе данных.
  2. Фильтрация групп (HAVING): Проверка, что HAVING корректно отфильтровывает группы, в отличие от WHERE, который фильтрует строки.
    -- Найти категории с более чем 10 заказами
    SELECT category_id, COUNT(*) as cnt
    FROM orders
    GROUP BY category_id
    HAVING COUNT(*) > 10;
  3. Группировка по нескольким полям: Проверка вложенных итогов.
    SELECT department, team, COUNT(*) as emp_count
    FROM employees
    GROUP BY department, team;
  4. Производительность: На больших таблицах GROUP BY без индексов по группируемым полям может быть медленным. Важно проверять время выполнения запросов.

Практика: Часто использую подобные запросы для создания тестовых дата-сетов, проверки бизнес-логики отчетных модулей и анализа данных в БД после выполнения тестовых сценариев.