Sobes.tech
Back to questions
Junior — Middle
62

Как использовать агрегатные функции совместно с оператором GROUP BY для группировки данных?

Companies where asked
СБЕРСБЕР

Answer from AI

sobes.tech AI

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

Пример: предположим, есть таблица orders с колонками customer_id и amount. Чтобы узнать сумму заказов по каждому клиенту, пишем:

SELECT customer_id, SUM(amount) AS total_amount
FROM orders
GROUP BY customer_id;

Здесь GROUP BY customer_id группирует строки по клиентам, а SUM(amount) вычисляет сумму заказов в каждой группе.

В Java при работе с базами данных через JDBC или ORM (например, JPA) можно использовать такие запросы для получения агрегированных данных. Если же речь о группировке и агрегатах в Java-коде, например, с использованием Stream API, то можно использовать методы collect(Collectors.groupingBy(..., Collectors.summingInt(...))) и подобные.