SQL AVG и GROUP BY: методы и примеры расчета средних значений в SQL

Вот несколько способов использования функции SQL AVGв сочетании с предложением GROUP BY, а также примеры кода:

Метод 1: базовый AVGи GROUP BY

SELECT category, AVG(price) AS average_price
FROM products
GROUP BY category;

Этот запрос вычисляет среднюю цену для каждой категории в таблице «Продукты».

Метод 2: AVGс HAVING

SELECT category, AVG(price) AS average_price
FROM products
GROUP BY category
HAVING AVG(price) > 100;

Этот запрос вычисляет среднюю цену для каждой категории и фильтрует результаты, чтобы включить только категории со средней ценой больше 100.

Метод 3: AVGс ORDER BY

SELECT category, AVG(price) AS average_price
FROM products
GROUP BY category
ORDER BY average_price DESC;

Этот запрос вычисляет среднюю цену для каждой категории и сортирует результаты в порядке убывания на основе средней цены.

Метод 4: AVGс JOIN

SELECT p.category, AVG(s.quantity) AS average_quantity
FROM products p
JOIN sales s ON p.product_id = s.product_id
GROUP BY p.category;

Этот запрос вычисляет среднее количество проданных товаров для каждой категории путем объединения таблиц «Продукты» и «Продажи».

Метод 5: AVGс DATE_TRUNC

SELECT DATE_TRUNC('month', order_date) AS month, AVG(total_amount) AS average_amount
FROM orders
GROUP BY month;

Этот запрос вычисляет среднюю сумму заказа за каждый месяц, усекая дату заказа до уровня месяца с помощью DATE_TRUNC.