Skip to content

Commit d8613d6

Browse files
Andreyenhorse
authored andcommitted
Update sql.md
Добавлен более развернутый ответ на вопрос ## В чем различие между операторами `HAVING` и `WHERE`?
1 parent 39a7c96 commit d8613d6

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

sql.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ __CROSS JOIN (декартово произведение)__
157157
[к оглавлению](#sql)
158158

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

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

0 commit comments

Comments
 (0)