我遇到了这个问题: 我有一个select语句,这是相当耗时的。 我必须自己加入结果。 我想做这样的事情:
Select table1.*, table2.Consumption
from (heavy select statement) table1 left outer join
(same heavy statement) table2
on table1."id" = table2."id" and table1."Year" -1 = table2."Year"
我不想两次捕获相同的数据。我宁愿做像table1 table2这样的事情。这可能吗? 我需要这个应用程序,它执行查询但不能使用create或类似的东西,否则我会将数据存储在表中。
答案 0 :(得分:0)
您可以使用公用表表达式(CTE)并实现重选语句的结果:
WITH heavy AS ( SELECT /*+ MATERIALIZE */ ... (heavy select statemenet) )
Select table1.*, table2.Consumption
from heavy table1 left outer join
heavy table2
on table1."id" = table2."id" and table1."Year" -1 = table2."Year"