Nếu chỉ chọn 2 cột đó (tên và cột1) là đủ, bạn có thể sử dụng:
select
distinct x.name, x.col1
from table_name x
where x.col1 = 2;
hoặc
select
x.name, x.col1
from table_name x
where x.col1 = 2
group by (x.name, x.col1);
Trong trường hợp bạn cần tất cả các giá trị nhưng bạn không nhớ cái nào cho nhiều bản ghi đáp ứng các tiêu chí của bạn mà bạn nhận được (ví dụ:Dan 2 2 1 hoặc Dan 2 1 3), bạn có thể sử dụng giá trị này (nó sẽ ghi lại đầu tiên trong số các bản ghi đó dựa trên thứ tự của tiêu chí):
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;