Info
Відкрити сторінку на телефоні

У чому різниця між WHERE і HAVING?

WHERE і HAVING - це два ключових слова в SQL, які використовуються для фільтрації результатів запиту. WHERE використовується для фільтрації результатів за значеннями у стовпцях, а HAVING використовується для фільтрації результатів за значеннями у результуючих агрегованих стовпцях.

WHERE можна використовувати для фільтрації результатів за значеннями у будь-якому стовпці таблиці. Наприклад, наступний запит поверне всі записи з таблиці customers, у яких поле age більше 18:

SQL

                        
SELECT *
FROM customers
WHERE age > 18;

                        
                    

HAVING можна використовувати для фільтрації результатів за значеннями у результуючих агрегованих стовпцях. Наприклад, наступний запит поверне всі записи з таблиці orders, у яких загальна сума замовлень перевищує 1000 доларів:

SQL

                        
SELECT order_id, SUM(amount) AS total
FROM orders
GROUP BY order_id
HAVING total > 1000;

                        
                    

Різниця між WHERE і HAVING полягає в тому, що WHERE використовується для фільтрації результатів за значеннями у стовпцях до того, як будуть обчислені агреговані стовпці, а HAVING використовується для фільтрації результатів за значеннями у результуючих агрегованих стовпцях після того, як вони будуть обчислені.