Junior
61
questionbank

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

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

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

Пример:

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

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

sql

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

sql

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

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