Я бы занялся этим на этапе вставки, сравнив то, что вы собираетесь вставить с самой последней записью, только по одной строке за раз.
Но если вы не можете этого сделать, одним из подходов может быть извлечение только самой ранней записи для каждой латы и длинной, используя вложенный запрос. Мне это не очень нравится, потому что это ужасно неэффективно, но может дать кому-то умнее, чем мне идея. (В этом примере предполагается, что вы отслеживаете транспортные средства, и у каждого автомобиля есть код).
Это даст вам самую раннюю дату/время, которое был указан на этом знаке транспортного средства. Может быть проблемой, если автомобиль перейдет по одной и той же земле дважды, если только вы не делаете что-то напуганное с подзапросом, например, сделайте его «раньше всего на том или ином в один день» или через час или что-то в этом роде.
SELECT
a.AnyOtherFieldsYouMightWantFromTheTrackerTable,
a.VehicleID,
a.Lat,
a.Long,
a.Date
FROM tblTracker as a
JOIN (
SELECT
VehicleID,
Lat, -- you don't really need Lat or Long in here but
Long, -- they're useful for running your subquery on its own
Min(DateTime) as MinDateTime
FROM tblTracker
GROUP BY VehicleID, Lat, Long -- so long as they're in here
) as b
ON a.VehicleID = b.VehicleID
AND a.DateTime = b.MinDateTime
Если все, кроме даты и времени, совпадают, тогда вы можете просто удалить все записи, которые находятся до определенного времени. Для всех других вещей требуется дополнительная информация о том, насколько подобны данные, когда они отличаются друг от друга, когда они схожи, ..... – Thomas