我有一个非常大的数据表,有10亿行数据。如果我尝试将该表加入自己进行比较,则估计计划的成本无法运行(成本:226831405289150)。有没有一种方法可以实现与下面的查询相同的结果,而无需连接,也许是一个分区?ORACLE SQL - 无加入日期比较日期
我需要做的是确保在收到Wildcare之前或之后24小时内没有发生其他事件。
非常感谢您的帮助!
select e2.SYSTEM_NO,
min(e2.DT) as dt
from SYSTEM_EVENT e2
inner join table1.event el2
on el2.event_id = e2.event_id
left join (Select se.DT
from SYSTEM_EVENT se
where
--fails
( se.event_id in ('101','102','103','104')
--restores
or se.event_id in ('106','107','108','109')
)
) e3
on e3.dt-e2.dt between .0001 and 1
or e3.dt-e2.dt between -1 and .0001
where el2.descr like '%WILDCARE%'
and e3.dt is null
and e2.REC_STS_CD = 'A'
group by e2.SYSTEM_NO
样本数据和期望的结果将有所帮助。 –