我有一个简单的问题:如何在SQL(准确地说是Oracle)中使用Count(Distinct)来仅返回给定字段中具有两个或多个不同值的行。

通过示例更容易理解:

ACCOUNT     SALESMAN
123         Abc
123         Abc

246         Abc
246         Def
246         Def

369         Hij

456         Abc
456         Def

在此示例中,唯一的销售代表具有2个不同的帐户分别是246和456,因此,我希望查询结果仅显示由2个或更多销售人员共享的帐户:
ACCOUNT     SALESMAN
246         Abc
246         Def
456         Abc
456         Def

谢谢。

最佳答案

使用having:

select distinct account,salesman
from MyTable where account in
(
    select account
    from MyTable
    group by account
    having count(distinct salesman) >= 2
)
order by 1,2

这是一个demonstration

关于sql - 使用不重复计数在字段中查找具有2个或更多不同值的记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12534177/

10-12 15:17