如果仅选择这两列(名称和 col1)就足够了,您可以使用:
select
distinct x.name, x.col1
from table_name x
where x.col1 = 2;
or
select
x.name, x.col1
from table_name x
where x.col1 = 2
group by (x.name, x.col1);
如果您需要所有值,但不介意您获得满足您条件的多个记录中的哪一个(例如 Dan 2 2 1 或 Dan 2 1 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;