Что такое оператор AVG в SQL и как он используется в предложении WHERE?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Оператор AVG() в SQL — это агрегатная функция, которая вычисляет среднее значение набора значений в указанном столбце.
AVG() не может использоваться напрямую в предложении WHERE. Предложение WHERE используется для фильтрации строк до выполнения агрегатных функций.
Чтобы фильтровать результаты по среднему значению, нужно использовать предложение HAVING. HAVING используется для фильтрации групп, созданных с помощью GROUP BY, после применения агрегатных функций.
Пример использования AVG() с HAVING:
SELECT customer_id, AVG(order_amount) AS average_order_amount
FROM orders
GROUP BY customer_id
HAVING AVG(order_amount) > 100; -- Фильтрация по среднему значению
Этот запрос выбирает идентификатор клиента и среднюю сумму заказов для каждого клиента, затем фильтрует результаты, оставляя только тех клиентов, у которых средняя сумма заказа превышает 100.
Если нужно использовать среднее значение в условии, не группируя данные, можно использовать подзапрос:
SELECT product_name, price
FROM products
WHERE price > (SELECT AVG(price) FROM products); -- Сравнение с общим средним значением
Этот запрос выбирает названия и цены продуктов, цена которых выше средней цены всех продуктов.