当且仅当列B中的相同值出现两次或更多时,如何返回A列中的值?

时间:2017-04-18 19:49:50

标签: 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栏的Erica,David和Tyler,因为每个人至少有两种或两种以上的饮料(在B栏中)。

1 个答案:

答案 0 :(得分:2)

这是一个聚合查询:

select distinct t.cola
from t
group by t.cola, t.colb
having count(*) >= 2;

这是select distinctgroup by查询中有意义的极少数情况之一。你不是要求列b的重复值 - 你甚至不想知道有多少这样的列b。只是对于任何列b是否存在重复项。