Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Postgres: group, by, avg

Как написать SQL-запрос с GROUP BY и AVG?

Вопрос проверяет базовое понимание агрегатных функций SQL и группировки данных.

Короткий ответ

GROUP BY используется для группировки строк по одному или нескольким столбцам.
AVG вычисляет среднее значение по группе.
Все неагрегатные поля в SELECT должны быть указаны в GROUP BY.
Такой запрос часто применяется для аналитики и отчётов.
Это базовый, но очень важный SQL-паттерн.

Длинный ответ

Определение

GROUP BY группирует строки с одинаковыми значениями, а агрегатные функции применяются к каждой группе отдельно.

Пример запроса

Предположим, есть таблица orders:

  • customer_id

  • amount

SELECT customer_id, AVG(amount) AS avg_amount
FROM orders
GROUP BY customer_id;

Как работает запрос

  1. строки группируются по customer_id

  2. для каждой группы считается AVG(amount)

  3. результат содержит одну строку на группу

Частые ошибки

  • использование поля в SELECT без GROUP BY

  • ожидание, что AVG вернёт целое число

  • попытка фильтрации агрегатов через WHERE вместо HAVING

SELECT customer_id, AVG(amount)
FROM orders
GROUP BY customer_id
HAVING AVG(amount) > 100;

Вывод

GROUP BY и AVG — основа агрегатных запросов. Они позволяют получать сводные данные напрямую из базы без дополнительной обработки в коде.

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • Postgres

    Postgres

Ключевые слова

#group

#by

#avg

Подпишись на Java Developer в телеграм