Спасибо, ребята, за этот отзыв.
Я отправляю это как ответ, и результаты настоящего времени:
1. самый быстрый результат (запрос 1,80 с, выборка 0,20 с, всего 2 с)
select distinct x.*
from DetectedVehicles x
join DetectedVehicles y
on x.PlateNo = y.PlateNo and
x.DetectionTime < y.DetectionTime
where x.CLCode=? and y.CLCode=?
2. (запрос 1,83 с, выборка 0,19 с, всего 2,02 с)
select
dvPoint1.PlateNo, dvPoint1.DetectionTime, dvPoint2.DetectionTime
from
DetectedVehicles dvPoint1
inner join DetectedVehicles dvPoint2
on dvPoint1.PlateNo = dvPoint2.PlateNo
and dvPoint1.CLCode = ? and dvPoint2.CLCode = ?
and dvPoint1.DetectionTime < dvPoint2.DetectionTime
3. (запрос 1,82 с, выборка 1,09 с, всего 2,91 с)
select x.*
from DetectedVehicles x
where exists
(select 1
from DetectedVehicles y
where x.PlateNo = y.PlateNo and
x.DetectionTime < y.DetectionTime and
x.CLCode=? and y.CLCode=?)
Так что, спасибо @Mark Bannister за Ваш ответ, я приму его.
Однако остается одна проблема:
cur.fetchall () занимает чрезвычайно много времени .. и мне нужно получить результаты, как мне это сделать? (Всего для 100 строк это занимает около 2 минут для каждого из ваших решений).
Решенная проблема: загрузите новый sqlite.dll в вашу папку python / dlls ... не спрашивайте меня, почему: Присоединиться с помощью Pylons sqlite модуль медленнее, чем делать это вручную