इसे "द्वीप समस्या" कहा जाता है और मैंने इसे एक समाधान के रूप में देखा है (क्रेडिट इट्ज़िक बेन गण)
select tool_number,
min(time) 'in',
max(time) 'out',
count(*)
from (
select tool_number,
time,
ROW_NUMBER() OVER (ORDER BY time) - ROW_NUMBER() OVER (PARTITION BY Tool_Number ORDER BY time) AS Grp
from #temp
) as a
group by grp, tool_number
order by min(time)