select * from telcombak b
where CONNECTDT>2004101100000000 and CONNECTDT<2004101200000000
and exists(select min(TELEPHONENO) from telcombak a where a.TELEPHONENO=b.TELEPHONENO group by a.TELEPHONENO having count(*)>4
where CONNECTDT>2004101100000000 and CONNECTDT<2004101200000000
and exists(select min(TELEPHONENO) from telcombak a where a.TELEPHONENO=b.TELEPHONENO group by a.TELEPHONENO having count(*)>4
*
from
telcombak a,
select min(TELEPHONENO) from telcombak a where CONNECTDT>2004101100000000 and CONNECTDT<2004101200000000 group by TELEPHONENO having count(*)>4 ) b
where a.TELEPHONENO=b.TELEPHONENO;
"<",">"最好想办法改成"<=",">="这样写SQL也可以得到一些优化
还有WHERE语句里第一个"="时最好用关键字段.
数据文件很庞大时,SQL优化很重要.我也是刚接触ORACLE各位大虾以后请多指教.
我想你这影响速度的主要原因是group by
and CONNECTDT < 2004101200000000
这两个条件写到 where条件的最后