Si la sélection de ces 2 colonnes (nom et col1) est suffisante, vous pouvez utiliser :
select
distinct x.name, x.col1
from table_name x
where x.col1 = 2;
ou
select
x.name, x.col1
from table_name x
where x.col1 = 2
group by (x.name, x.col1);
Si vous avez besoin de toutes les valeurs mais que vous ne vous souciez pas de savoir laquelle des multiples enregistrements répondant à vos critères vous obtenez (par exemple, Dan 2 2 1 ou Dan 2 1 3), vous pouvez l'utiliser (il enregistrera le premier de ces enregistrements en fonction de l'ordre par critères):
select xx.name, xx.col1, xx.col2, xx.col3
from (select
x.name, x.col1, x.col2, x.col3, dense_rank() over (partition by x.name order by x.name, x.col1, x.col2, x.col3) rnk
from table_name x
where x.col1 = 2) xx
where xx.rnk = 1;