Sobes.tech
Назад к вопросам
Junior — Middle
67

Можно ли использовать условие WHERE в SQL-запросах с агрегатными функциями, такими как COUNT, SUM, AVG?

Ответ от нейросети

sobes.tech AI

В SQL условие WHERE используется для фильтрации строк до применения агрегатных функций (COUNT, SUM, AVG и т.д.). То есть WHERE фильтрует исходные данные, а затем агрегатные функции считаются по отфильтрованным строкам.

Если нужно фильтровать уже агрегированные результаты, используется конструкция HAVING.

Пример:

-- Выбрать количество заказов для клиентов из определённого города
SELECT COUNT(*)
FROM orders
WHERE city = 'Moscow';

-- Выбрать клиентов, у которых количество заказов больше 5
SELECT customer_id, COUNT(*) as orders_count
FROM orders
GROUP BY customer_id
HAVING COUNT(*) > 5;