これらの2つの列(nameとcol1)だけを選択するだけで十分な場合は、次を使用できます。
select
distinct x.name, x.col1
from table_name x
where x.col1 = 2;
または
select
x.name, x.col1
from table_name x
where x.col1 = 2
group by (x.name, x.col1);
すべての値が必要であるが、取得した基準を満たす複数のレコードのどれを取得してもかまわない場合(Dan 221またはDan21 3など)、これを使用できます(順序に基づいてこれらのレコードの最初に記録されます。基準):
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;