Это проблема пробелов и островков. В SQL есть один подход к решению с помощью оконных функций:
select Id, IdRef, myColumn, anotherColumn
from (
select t.*, lag(myColumn) over(partition by IdRef order by Id) lagMyColumn
from mytable t
) t
where lagMyColumn is null or lagMyColumn <> myColumn
Внутренний запрос восстанавливает значение myColumn
в предыдущей строке , упорядоченной по Id
. Затем внешний запрос фильтрует записи, в которых это значение отличается от значения в текущей строке.
Демонстрация на БД Fiddle :
id | idref | mycolumn | anothercolumn
--: | ----: | -------: | :------------
448 | 70 | 1 | 228
455 | 70 | 2 | 2a8
458 | 70 | 3 | v
460 | 70 | 4 | 22
461 | 70 | 3 | 54
462 | 70 | 4 | 45
463 | 70 | 3 | s28