Что такое SQL GROUP BY

«Что такое SQL GROUP BY» — вопрос из категории Базы данных, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

GROUP BY в SQL используется для группировки строк с одинаковыми значениями в указанных столбцах. Это часто применяется с агрегатными функциями (COUNT, SUM, AVG, MAX, MIN и т. д.) для выполнения вычислений по каждой группе.

Пример:

SELECT department, COUNT(*) as employee_count
FROM employees
GROUP BY department;

Этот запрос вернёт количество сотрудников в каждом отделе.

Нюансы:

  1. В SELECT можно указывать только столбцы из GROUP BY или агрегатные функции.
  2. Для фильтрации групп используется HAVING (аналог WHERE для групп).
  3. Порядок группировки можно задать через ORDER BY.

Пример с HAVING:

SELECT department, AVG(salary) as avg_salary
FROM employees
GROUP BY department
HAVING AVG(salary) > 50000;