После некоторого тестирования я предложил следующий оператор SQL:
SELECT date, itemName
FROM "Table" as t1
WHERE NOT EXISTS (
SELECT date
FROM "Table" as t2
WHERE t2.date = (t1.date - INTERVAL '1 day')
)
ORDER BY date
OFFSET 1 -- this will skip the first element
Это даст вам все строки, которые не имеют прямого преемника.
Если вы измените утверждение на:
SELECT date, itemName
FROM "Table" as t1
WHERE NOT EXISTS (
SELECT date
FROM "Table" as t2
WHERE (t2.date >= (t1.date - INTERVAL '2 day'))
AND (t2.date < t1.date)
)
ORDER BY date
OFFSET 1
вы можете использовать длину ИНТЕРВАЛА в предложении WHERE подвыбора для фильтрации по промежуткам, по крайней мере, такого размера.
Надеюсь, это поможет.