Сначала group by name, surname
, чтобы получить количество вхождений и минимальную и максимальную привязку каждого имени и фамилии и объединить результаты с таблицей.
С оператором CASE применяются условия:
select
p.*,
case
when g.counter in (1, 2) then 'mark'
else case
when p.dob not in (g.mindob, g.maxdob) then 'mark'
end
end Checkbox
from peaople inner join (
select
name, surname,
count(*) counter,
min(dob) mindob,
max(dob) maxdob
from people
group by name, surname
) g on g.name = p.name and g.surname = p.surname