使用聚合函数和大小写时加入View与临时表

时间:2018-05-08 22:59:48

标签: oracle join case aggregate-functions in-subquery

我有一个包含多个连接的大型查询,包括一个子查询(保存为视图)。基本上它看起来像这样。

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删除该组不为null)使用临时表替换子查询可以解决问题,但我不清楚为什么。他们是创建临时表的解决方案,还是可能的原因(内存问题?)?

由于

0 个答案:

没有答案