请帮助我优化下面提到的脚本,因为同一个表(即 Incident_Audit_log)已多次使用?

Posted

技术标签:

【中文标题】请帮助我优化下面提到的脚本,因为同一个表(即 Incident_Audit_log)已多次使用?【英文标题】:Please help me to optimize the below mentioned script as the same table(i.e. Incident_Audit_log) has utilized multiple times? 【发布时间】:2015-10-16 07:33:58 【问题描述】:
select  A.*           
from Incident_Audit_log a  where incident_audit_log_id in     
(select top 1 incident_audit_log_id from Incident_Audit_log b 
where  b.incident_id=a.incident_id and  b.status_did=a.status_did    
and b.tracking_code_did = (select tracking_code_did     
from Incident_Audit_log where update_date = (select MAX(update_date)     
from Incident_Audit_log where Status_did in (103, 1035)    
and incident_id = b.incident_id)    
and incident_id = b.incident_id)    
order by update_date asc)

【问题讨论】:

您要选择什么?桌子长什么样子? 【参考方案1】:

我不确定您想要实现什么,但我猜您想提取具有最新更新且 status_did 等于 13 和 1035 的行。

在这种情况下,这应该有效:

select  *
from    (
        select ROW_NUMBER() OVER(ORDER BY update_date DESC) AS rn, 
           *
        from    Incident_Audit_log
        where status_did in (103, 1035)
        ) as SubQueryAlias
where   rn = 1

如果没有,请提供更多信息。

【讨论】:

以上是关于请帮助我优化下面提到的脚本,因为同一个表(即 Incident_Audit_log)已多次使用?的主要内容,如果未能解决你的问题,请参考以下文章

滑动 UI 就像下面提到的图像

HDU4725 The Shortest Path in Nya Graph(堆优化的dijkstra算法)

web优化-样式表脚本

Oracle学习篇之SQL语句的优化

如何从子查询结果中选择值

带有 IN 子句的 SQL 查询的 MYSQL 查询优化