Если я правильно понимаю, вы ожидаете, что первое вхождение будет разным (start_date, end_date).
Вы можете использовать функцию row_number () и затем выбрать строки, где номер строки = 1.
with x as
(
select start_date, end_date, theDiff,
row_number() over (partition by start_date, end_date order by start_date) rn
from tbl
)
select start_date, end_date, theDiff
from x
where rn = 1;
start_date | end_date | thediff
:--------- | :--------- | ------:
2018-05-14 | 2018-05-18 | 5
db <> fiddle здесь
Вы можете переместить CTE в предложение FROM:
select start_date, end_date, theDiff
from
(
select start_date, end_date, theDiff,
row_number() over (partition by start_date, end_date order by start_date) rn
from tbl
) x
where rn = 1;