В SQL и предложение WHERE, и предложение HAVING используются для фильтрации данных, но они используются в разных контекстах.
- Предложение WHERE:
Предложение WHERE используется в запросах SQL для фильтрации строк на основе определенных условий. В основном он используется с операторами SELECT, UPDATE и DELETE. Вот некоторые ключевые моменты, касающиеся предложения WHERE:
- Используется для фильтрации строк на основе значений столбца.
- Он работает с отдельными строками до того, как произойдет группировка и агрегирование.
- Его можно использовать с операторами сравнения, такими как “=”, “<>“, “<", ">“, “<=", ">=” и т. д., а также с логическими операторами, такими как AND, ИЛИ и НЕТ.
- Предложение WHERE может фильтровать данные на основе одного или нескольких условий.
Пример:
ВЫБРАТЬ * ИЗ сотрудников ГДЕ зарплата >50000;
В приведенном выше примере будут возвращены только строки с зарплатой более 50 000.
- Предложение HAVING:
Предложение HAVING используется в запросах SQL для фильтрации строк на основе условий после группировки и агрегирования данных. В основном он используется с предложением GROUP BY. Вот некоторые ключевые моменты, касающиеся предложения HAVING:
- Он используется для фильтрации сгруппированных данных на основе агрегатных функций, таких как SUM, COUNT, AVG и т. д.
- Он работает с группами строк после группировки и агрегирования.
- Его можно использовать с агрегатными функциями и операторами сравнения.
- Предложение HAVING может фильтровать группы на основе одного или нескольких условий.
Пример:
ВЫБЕРИТЕ город, COUNT() как total_employees FROM сотрудников GROUP BY city HAVING COUNT() >5;
В приведенном выше примере будут возвращены только группы (города) с числом сотрудников более пяти.
Подводя итог: предложение WHERE используется для фильтрации строк перед группировкой и агрегированием, а предложение HAVING используется для фильтрации групп на основе агрегатных функций после группировки и агрегирования.