Вашему объяснению немного трудно следовать, но, основываясь на ваших данных, я думаю, что вам просто нужна агрегация и min()
:
select id, company, min(result) result
from mytable
group by id, company
Почему это работает, потому что, по строкам, 'Found'
меньше, чем 'Not Found'
(поскольку первый начинается с 'F'
, а второй начинается с 'N'
). Поэтому, если в группе присутствуют оба значения, min()
возвращает 'Found'
. Если присутствует только одно значение, оно возвращается как есть.