У меня большой запрос с несколькими объединениями, включая подзапрос (сохраненный как представление). По сути это выглядит так.
Select
sum(a.amount),
case when a.criteria1 = 'c' then 'something'
when v.min_rank = 2 then 'something else'
....
else 'other' end
from main_table a
left join view v
on a.column1 = v.column1
group by
case when a.criteria1 = 'c' then 'something'
when v.min_rank = 'd' then 'something else'
....
else 'other' end
Где вид
select min(c.rank) as min_rank, a.column1
from main_table a
left join crieria c
on c.criteria = a.some_column
group by a.column1
Oracle
По какой-то причине агрегация приводит к тому, что мой подзапрос (представление) не присоединяется (v.columns имеют значение null). (Если я не суммирую и не отбрасываю группу с помощью v.columns, они не равны нулю) Замена подзапроса временной таблицей решает проблему, но мне не ясно, почему. Это решение с созданием временной таблицы или вероятной причиной (проблема с памятью?)?
Спасибо