Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
04.10.2019, 16:59
|
|||
---|---|---|---|
|
|||
Какой порядок выполнения group by, select, having? |
|||
#18+
Всем привет. В какой-то последовательности запрос выполняется, передавая по цепочке временную таблицу с текущим промежуточным результатом (которая состоит из всех столбцов полученных джоинами и подзапросами в FROM). Агрегатные функции добавляют временной таблице несуществующих в реальности столбцов. А SELECT уже работает с итоговым результатом. По этой причине в HAVING можно использовать агрегатное поле (т.е. не существующее физически в таблице). FROM -- собираем общую таблицу WHERE -- фильтруем, остается только нужное GROUP BY\ORDER BY [+АГРЕГАТНЫЕ ФУНКЦИИ] SELECT HAVING ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.10.2019, 20:30
|
|||
---|---|---|---|
Какой порядок выполнения group by, select, having? |
|||
#18+
Формально: WITH, FROM, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT. Выражения вычисляются в момент теоретичской надобности. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.10.2019, 11:45
|
|||
---|---|---|---|
|
|||
Какой порядок выполнения group by, select, having? |
|||
#18+
Akina, от субд зависит, когда выполняется SELECT? Сейчас сделал тесты, получил следующее: ORDER BY выполняется и с полем в SELECT, и с полем, которое в SELECT не указано HAVING можно выполнить, только если поле есть в SELECT ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.10.2019, 11:51
|
|||
---|---|---|---|
Какой порядок выполнения group by, select, having? |
|||
#18+
летатель космосаHAVING можно выполнить, только если поле есть в SELECTЕрунда. HAVING требует, чтобы указанное поле или выражение имело смысл после операции группировки. Например, совершенно легитимно Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=47&mobile=1&tid=1828933]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
2ms |
others: | 348ms |
total: | 474ms |
0 / 0 |