0
SELECT s1.ID FROM binventory_ostemp s1 JOIN
(SELECT Cust_FkId, ProcessID, MAX(Service_Duration) AS duration
FROM binventory_ostemp WHERE ProcessID='4d2d6068678bc' AND Overall_Rank IN
(
SELECT MIN(Overall_Rank) FROM binventory_ostemp WHERE ProcessID='4d2d6068678bc' GROUP BY Cust_FkId
)
GROUP BY Cust_FkId
) AS s2 ON s1.Cust_FkId = s2.Cust_FkId AND s1.ProcessID=s2.ProcessID
AND s1.Service_Duration=s2.duration AND s1.ProcessID='4d2d6068678bc'
GROUP BY s1.Cust_FkId
它就消失了,如果有超过10K行该表。它所做的是为每个有分钟的客户查找行。整体等级和最大值。对于一个给定的ProcessID服务持续时间的我怎样才能重写此查询以加快执行速度
表数据
ID Cust_FkId Overall_Rank Service_Duration ProcessID
1 23 2 30 4d2d6068678bc
2 23 1 45 4d2d6068678bc
3 23 1 60 4d2d6068678bc
4 56 3 90 4d2d6068678bc
5 56 2 50 4d2d6068678bc
6 56 2 85 4d2d6068678bc
结果数据
结果ID值必须和仅
我猜你的意思是导致ID必须是3和6,而不是5? 5具有更短的服务持续时间超过6 .. – 2011-01-12 09:13:52