Встречается на 2% собеседований по Java

Как связать агрегатные функции и GROUP BY

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

Пример:

sql
SELECT department, COUNT(*) as employee_count, AVG(salary) as avg_salary
FROM employees
GROUP BY department;

Ключевые моменты:

  1. Все неагрегированные столбцы в SELECT должны быть в GROUP BY
  2. Агрегатные функции вычисляются для каждой группы отдельно
  3. Можно группировать по нескольким столбцам

В Java это можно реализовать через Stream API:

java
Map<String, Double> avgSalaryByDept = employees.stream()
    .collect(Collectors.groupingBy(
        Employee::getDepartment,
        Collectors.averagingDouble(Employee::getSalary)
    ));
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы