请教一条SQL语句
大家好,在这里想请教大家一条SQL语句
我有一个表Wmshandleout,里面大概有800万条记录,Deliverno是送货单号,CreateDate是发货时间,Barcode是货物条形码,Productcode是产品内部编号表如下:
ID BarCode Deliverno Productcode num CreateDate saleType
1 KKK123 D00001 PSR0W001 1 2007-06-04 08:30:00 出口
2 KKK124 D00001 PSR0W001 1 2007-06-04 08:30:30 出口
3 KKK125 D00001 PSR0W001 1 2007-06-04 08:30:50 出口
4 KKC125 D00003 PSR0W003 1 2007-06-04 08:35:01 国内
5 KKC125 D00003 PSR0W004 1 2007-06-04 08:40:00 国内
.....
....
我想查询出同一个送货单号最早的出货时间和最晚的出货时间
如送货单为D00001的最早出货时间为2007-06-04 08:30:00最晚出货时间为2007-06-04 08:30:50
我写了一个语句如下,但是特别的慢,大概执行要20秒钟,各位有没有什么更好的办法?
Select Deliverno,min(to_char(createdate, 'hh24:mi ')) StartCreateDate, max(to_char(createdate, 'hh24:mi ')) EndCreateDate
From wmshandleout
Where createdate like to_date( '2007-05-31 ', 'yyyy-mm-dd ')
Group By DELIVERNO
------解决方案--------------------建立索引
------解决方案--------------------to_char速度很慢 建议去掉
------解决方案--------------------Where createdate like to_date( '2007-05-31 ', 'yyyy-mm-dd ')
换成 substr(createdate,0,10)= '2007-05-31 '