Оператор AVG() в SQL — это агрегатная функция, которая вычисляет среднее значение набора значений в указанном столбце.
AVG() не может использоваться напрямую в предложении WHERE. Предложение WHERE используется для фильтрации строк до выполнения агрегатных функций.
Чтобы фильтровать результаты по среднему значению, нужно использовать предложение HAVING. HAVING используется для фильтрации групп, созданных с помощью GROUP BY, после применения агрегатных функций.
Пример использования AVG() с HAVING:
sql
Этот запрос выбирает идентификатор клиента и среднюю сумму заказов для каждого клиента, затем фильтрует результаты, оставляя только тех клиентов, у которых средняя сумма заказа превышает 100.
Если нужно использовать среднее значение в условии, не группируя данные, можно использовать подзапрос:
sql
Этот запрос выбирает названия и цены продуктов, цена которых выше средней цены всех продуктов.