查询优化排名运算符

时间:2017-01-07 21:56:14

标签: sql oracle join window-functions rank

有人可以帮我优化以下查询,因为它需要很长时间才能执行。

我试图摆脱瓶颈并得出表2和表3之间没有连接的分析,我们需要在秩函数中使用表2和表3的列,这会影响性能。悲伤的部分故事是表2和表3之间没有关系而且无法加入。

只是添加,我们可以将表1与表2连接,并且可以将其输出与表3连接(表1引用了表1和表2)

下面是表格结构供参考,希望有所帮助:

col1 =col2_prnt

表2和表3无法连接,我们可以将表1和表2连接为:col1 =col1_prnt or col1 =col2_child. 表1和表3为SELECT Table1.CEASE_DT, RANK() OVER(PARTITION BY Table1.COL1 ORDER BY Table1.END_DT DESC, Table1.LST_DT DESC, Table2.END_DT DESC, Table2.LST_DT DESC, Table3.END_DT DESC, Table3.LST_DT DESC NULLS LAST ) AS RANK1 FROM Table1, Table2, Table3 WHERE ( (Table1.COL1=Table2.col1_prnt AND Table2.COUNTRY_CD='XX' ) OR (Table1.COL1=Table3.COL1_CHILD AND Table3.COUNTRY_CD='XX' ) OR (Table1.COL1=Table3.COL1_PRNT AND Table3.COUNTRY_CD='XX' ))

UIView.animateWithDuration(0.3) { 
    self.collectionView.contentOffset = newOffset
    self.collectionView.reloadItemsAtIndexPaths(willDisappearIndexPaths)
}

0 个答案:

没有答案