Size: a a a

2020 September 04

AS

Andrey Smirnov in Data Engineers
Dima
Чет на форуме пост мне кажется избыточно ради уточнения писать.

WHERE выполняется перед GROUP BY или после?)
https://blog.jooq.org/2016/12/09/a-beginners-guide-to-the-true-order-of-sql-operations/
блин, не давно в твиттере видел красивую картинку ро порядок, но не могу найти
источник

D

Dima in Data Engineers
если после нет
источник

D

Dima in Data Engineers
а да двиг prestodb
источник

GP

Grigory Pomadchin in Data Engineers
Друзья мои, планируем Moscow Spark #10 в онлайне. Поэтому прошу всех потенциальных докладчиков ещё раз стукнуться мне в личку.
источник

GP

Grigory Pomadchin in Data Engineers
Grigory Pomadchin
Друзья мои, планируем Moscow Spark #10 в онлайне. Поэтому прошу всех потенциальных докладчиков ещё раз стукнуться мне в личку.
источник

D

Dima in Data Engineers
да судя по тому что написано сначала фильтрует потом группирует результат
источник

AS

Andrey Smirnov in Data Engineers
да, так и должно быть
источник

AZ

Anton Zadorozhniy in Data Engineers
Dima
да судя по тому что написано сначала фильтрует потом группирует результат
Это так не работает, оптимизатор рассматривает весь запрос, а также статистику таблиц, и решает что как исполнять; я вам по секрету расскажу что иногда СУБД может вообще условие WHERE не исполнить, если она решила выражение всегда справедливо (например where exists по PK-FK)
источник

AZ

Anton Zadorozhniy in Data Engineers
В примере select a, count(*) from table _x where b = 1 group by a; СУБД будет читать таблицу с предикатом и группировать
источник

AZ

Anton Zadorozhniy in Data Engineers
А самый просто способ это спросить СУБД саму, explain select ..
источник

N

Nikita Blagodarnyy in Data Engineers
Alex
Ну слек индексацию неоднократно нарывался, но вот телеграм думаю не делают так как прямую линку сложно выдать
источник

AS

Andrey Smirnov in Data Engineers
Anton Zadorozhniy
Это так не работает, оптимизатор рассматривает весь запрос, а также статистику таблиц, и решает что как исполнять; я вам по секрету расскажу что иногда СУБД может вообще условие WHERE не исполнить, если она решила выражение всегда справедливо (например where exists по PK-FK)
речь не про физическое выполнение запроса, то что там что-о может не вычисляться, идти в параллель и т.д., это понятно, но логически сначала фильтрация потом группировка
источник

AZ

Anton Zadorozhniy in Data Engineers
Andrey Smirnov
речь не про физическое выполнение запроса, то что там что-о может не вычисляться, идти в параллель и т.д., это понятно, но логически сначала фильтрация потом группировка
вы же в курсе что в WHERE может стоять и джоин и подзапрос? само рассуждение о "последовательности исполнения SELECT" порочно, это декларативное выражение над множествами, оптимизатор его может очень сильно переписать, какие-то части выкинуть, и исполнить как ему виднее
источник

AS

Andrey Smirnov in Data Engineers
Anton Zadorozhniy
вы же в курсе что в WHERE может стоять и джоин и подзапрос? само рассуждение о "последовательности исполнения SELECT" порочно, это декларативное выражение над множествами, оптимизатор его может очень сильно переписать, какие-то части выкинуть, и исполнить как ему виднее
Не натянете сову на глобус, сначала  where потом group
источник

R

Roman in Data Engineers
Andrey Smirnov
Не натянете сову на глобус, сначала  where потом group
Эм...ну для начального уровня понимания работы sql и СУБД - это подходит. А для более глубокого, все же посыл Антона имеет место быть.
источник

AS

Andrey Smirnov in Data Engineers
Roman
Эм...ну для начального уровня понимания работы sql и СУБД - это подходит. А для более глубокого, все же посыл Антона имеет место быть.
Я так понимаю по ссылке что я постил вы не ходили
источник
2020 September 05

AZ

Anton Zadorozhniy in Data Engineers
Andrey Smirnov
Не натянете сову на глобус, сначала  where потом group
вы правы что они идут именно в такой последовательности в грамматике, и что в стандарте говорится что group by clause определяется для результатов предыдущей clause (но это не определение как оно должно работать, как я там показал на примерах); моя позиция что разговор про «последовательность выполнения» для декларативного языка (без ссылки на конкретный интерпретатор) не имеет особого смысла, это как спросить «в какой последовательности _выполняются_ элементы этого XML документа?»; и отвечая на вопрос я честно сказал то что знаю про известные мне СУБД, что они выполняются одновременно - я не знаю СУБД которая честно материализует временную таблицу после WHERE целиком, чтобы потом начать группировать ее)))
источник

AZ

Anton Zadorozhniy in Data Engineers
мб это просто уже профессиональная деформация человека измученного оптимизаторами)
источник

AZ

Anton Zadorozhniy in Data Engineers
вот если бы спросили что раньше выполняется, WHERE или HAVING/QUALIFY, то да, тут ответ однозначный именно по физике
источник

А

Алексей in Data Engineers
подскажите, у .par коллекций можно задать таймаут на выполнение кода в параллельном потоке?
источник