Я пытаюсь декоррелировать запрос, который выглядит так:
select A.id, A.other_id A.data, A.data2,
(select count(*) from B where B.id = A.id and B.data < A.data),
(select count(*) from B where B.id = A.id and B.data < A.data and A.other_id = B.other_id),
(select count(*) from B where B.id = A.id and B.data < A.data and B.sth is True)
from A
Я пытался что-то вроде select ... from A left join B on B.data < A.data where ...
Но результат не совсем тот же, и он намного медленнее.
Есть ли разумный способ декоррелировать такой запрос?
Я хочу запустить это в искре, которая не поддерживает коррелированные подзапросы с предикатом неравенства.
Или, может быть, существует другой способ достижения того же результата, который будет работать с искрой.