sql语句优化 oracle
现有一张商户交易的表 字段如下
id 商户id
open_date 开户日期
dt 交易流水具体时间
amt 交易金额
off 0代表入账 1 代表出账
需求是这样的:
计算各个商户每一笔出款距离其上一笔入款的时间间隔(分钟),并取所有时间间隔中的最小值。
我写的sql如下 但是执行半个多小时都没有结果 哪位大神帮我优化一下 十分感谢
SELECT
t3.id,
min(t3.jiange) as off1st_jiange_min
FROM
(
SELECT
t1.id,
t1.dt AS rukuan_time,
t2.dt AS qukuan_time,
(to_date(t1.dt, 'ddmonyyyy:HH24:mi:ss') -
to_date(t2.dt, 'ddmonyyyy:HH24:mi:ss')) * 24 * 60
AS jiange
FROM
Pol_Trans t1,
Pol_Trans t2
WHERE
t1.id = t2.id
AND t1.off = '0'
AND t2.off = '1'
AND to_date(t1.dt, 'ddmonyyyy:HH24:mi:ss') > to_date(t2.dt, 'ddmonyyyy:HH24:mi:ss')
ORDER BY t2.dt,t1.dt DESC
) t3
GROUP BY t3.id;