Вы можете использовать функции окна:
select m.*
from (select m.*,
row_number() over (partition by market_id order by market_id) as seqnum
from market m
where market_id in ( . . . )
) m
where seqnum = 1;
Вы можете изменить order by
, чтобы получить конкретную строку - первый, последний, что угодно.
* 1008Тем не менее, я не понимаю, почему у вас есть дубликаты
market_id
в таблице с именем
market
. Похоже, что это должен быть первичный ключ.