Skip to content

Commit

Permalink
Update sql.md
Browse files Browse the repository at this point in the history
Добавлен более развернутый ответ на вопрос
## В чем различие между операторами `HAVING` и `WHERE`?
  • Loading branch information
Andrey authored and enhorse committed Aug 9, 2021
1 parent 39a7c96 commit d8613d6
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion sql.md
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ __CROSS JOIN (декартово произведение)__
[к оглавлению](#sql)

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

[к оглавлению](#sql)

Expand Down

0 comments on commit d8613d6

Please sign in to comment.