0
在此查询:Oracle是否/ Netezza公司执行子查询一次
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
将甲骨文/ Netezza公司执行$子查询只有一次?还是两次?
在此查询:Oracle是否/ Netezza公司执行子查询一次
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
将甲骨文/ Netezza公司执行$子查询只有一次?还是两次?
Oracle将执行两次。 (实际上这不是100%准确的,它只会执行一次主要(复合)查询,但可能会访问子查询的表的2个不同时间/方式。)
您应该使用with
来优化这种方式。
(否则你可以使用MAX()OVER(PARTITION BY ....)为类似的事情为好。)
使用ANSI'JOIN',而不是你的'WHERE'子句中加入请填写你的SQL。你也可以使用'WITH'子句来定义你的子查询,而不是写两次。 –