Easygroup-by
Что такое GROUP BY и агрегатные функции?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
GROUP BY группирует строки с одинаковыми значениями в заданных колонках, а агрегатные функции (COUNT, SUM, AVG, MIN, MAX) считают результат по каждой группе.
SELECT department,
COUNT(*) AS staff_count,
AVG(salary) AS avg_salary,
MAX(salary) AS max_salary
FROM employees
GROUP BY department;Все неагрегатные колонки в SELECT должны быть в GROUP BY. Несколько колонок дают подгруппы: GROUP BY department, role. Без GROUP BY агрегат считается по всей таблице: SELECT COUNT(*) FROM employees.
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.