SQL вопросы : Вопрос 1 : 37

В чем различие между выражениями HAVING и WHERE?

 

Уважаемые учащиеся ниже Вы сможете увидеть ответ, перед тем, как ответить, пожалуйста, постарайтесь написать для себя ответ на черновике, и только потом сравните наш ответ с Вашим: 

 

 

 

 

Верно ли наше решение?

Ответ:

WHERE - это ограничивающее выражение. Оно выполняется до того, как будет получен результат операции.

HAVING - фильтрующее выражение. Оно применяется к результату операции и выполняется уже после того как этот результат будет получен, в отличии от where.
Выражения WHERE используются вместе с операциями SELECT, UPDATE, DELETE, в то время как HAVING только с SELECT и предложением GROUP BY.

Например, WHERE нельзя использовать таким образом:

SELECT name, SUM(salary) FROM Employees WHERE SUM(salary) > 1000 GROUP BY name 


В данном случае больше подходит HAVING:

SELECT name, SUM(salary) FROM Employees GROUP BY name HAVING SUM(salary) > 1000 


То есть, использовать WHERE в запросах с агрегатными функциями нельзя, для этого и был введен HAVING.
1 балл


© Copyright © 2017 - 2019 Все права защищены. Бесплатное онлайн образование.