1
1
Fork 0

Update sql.md

Добавлен более развернутый ответ на вопрос
## В чем различие между операторами `HAVING` и `WHERE`?
This commit is contained in:
Andrey 2021-08-09 11:33:47 +03:00 committed by Enchased Horse
parent 39a7c96d3e
commit d8613d6ca8
1 changed files with 1 additions and 1 deletions

2
sql.md
View File

@ -157,7 +157,7 @@ __CROSS JOIN (декартово произведение)__
[к оглавлению](#sql)
## В чем различие между операторами `HAVING` и `WHERE`?
`HAVING` используется как `WHERE`, но в другой части SQL-выражения и, соответственно, на другой стадии формирования ответа.
Основное отличие 'WHERE' от 'HAVING' заключается в том, что 'WHERE' сначала выбирает строки, а затем группирует их и вычисляет агрегатные функции (таким образом, она отбирает строки для вычисления агрегатов), тогда как 'HAVING' отбирает строки групп после группировки и вычисления агрегатных функций. Как следствие, предложение 'WHERE' не должно содержать агрегатных функций; не имеет смысла использовать агрегатные функции для определения строк для вычисления агрегатных функций. Предложение 'HAVING', напротив, всегда содержит агрегатные функции. (Строго говоря, вы можете написать предложение 'HAVING', не используя агрегаты, но это редко бывает полезно. То же самое условие может работать более эффективно на стадии 'WHERE'.)
[к оглавлению](#sql)