在此查询中:
select L1.*, L2.* from (select t1.col1, max(t1.col2) from ($subquery) t1, group by t1.col1) L1, ($subquery) L2 where L1.col1 = L2.col1
Oracle / Netezza只执行一次$子查询吗?还是两次?
答案 0 :(得分:1)
Oracle将执行两次。 (实际上这并不是100%准确。它只会执行一次主(复合)查询,但可能会以2种不同的时间/方式访问子查询表。)
您应该使用with
来优化这种方式。
(否则你也可以使用MAX()OVER(PARTITION BY ....)来做类似的事情。)