Назад к вопросам
Junior
105
questionbank

В чем разница между предложениями WHERE и HAVING в SQL?

Sobes Copilot

Получайте ответы в реальном времени

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

sobes.tech AI

WHERE применяется до группировки и фильтрует строки результата FROM. HAVING применяется после группировки и фильтрует группы, сформированные с помощью GROUP BY.

Пример:

Предположим, у нас есть таблица orders со столбцами customer_id, order_date и amount.

Найти всех покупателей, у которых общая сумма заказов превышает 1000:

SELECT customer_id, SUM(amount)
FROM orders
GROUP BY customer_id
HAVING SUM(amount) > 1000;

Найти все заказы с суммой более 1000:

SELECT customer_id, order_date, amount
FROM orders
WHERE amount > 1000;

Таблица сравнения:

Признак WHERE HAVING
Применение К отдельным строкам до группировки К группам строк после группировки
Использует Столбцы из FROM Агрегатные функции и столбцы из GROUP BY
Выполняется До GROUP BY После GROUP BY
Агрегатные функции Не может использоваться напрямую Может использоваться