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
Он просто уходит, если в этой таблице содержится более 10 тыс. Строк. То, что он делает, это найти строки для каждого клиента, у которого мин. общего ранга и в тех макс. продолжительности службы для данного 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 .. –