Sql 当且仅当B列中的相同值出现两次或两次以上时,如何返回A列中的值?
假设我有一组像这样的数据Sql 当且仅当B列中的相同值出现两次或两次以上时,如何返回A列中的值?,sql,oracle,count,conditional,teradata,Sql,Oracle,Count,Conditional,Teradata,假设我有一组像这样的数据 Column A | Column B (Beverage) Andres Coffee Erica Coffee David Beer Tyler Beer Tyler Beer Andres Shake Erica Coffee Erica Coffee David Beer David Coffee Tyler Shake 我想返回:A
Column A | Column B (Beverage)
Andres Coffee
Erica Coffee
David Beer
Tyler Beer
Tyler Beer
Andres Shake
Erica Coffee
Erica Coffee
David Beer
David Coffee
Tyler Shake
我想返回:A列中的Erica、David和Tyler,因为他们每人至少喝过一种饮料两次或两次以上(在B列中)。这是一个聚合查询:
select distinct t.cola
from t
group by t.cola, t.colb
having count(*) >= 2;
在分组方式
查询中,select distinct
有意义,这是非常罕见的情况之一。你不是在要求b列的重复值——你甚至不想知道b列有多少这样的列。是否存在任何列b的重复项