Yaa*_*qov 5 sql oracle count aggregate-functions
我有一个简单的问题:如何在SQL中使用Count(Distinct)(确切地说是Oracle)只返回给定字段中有两个或更多不同值的行.
通过示例更容易理解:
ACCOUNT SALESMAN
123 Abc
123 Abc
246 Abc
246 Def
246 Def
369 Hij
456 Abc
456 Def
Run Code Online (Sandbox Code Playgroud)
在此示例中,具有2个不同销售代表的唯一帐户将是246和456,因此,我希望查询的结果仅显示由2个或更多销售人员共享的帐户:
ACCOUNT SALESMAN
246 Abc
246 Def
456 Abc
456 Def
Run Code Online (Sandbox Code Playgroud)
谢谢.
用途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
Run Code Online (Sandbox Code Playgroud)
这是一个演示.
正如另一个答案表明你需要使用HAVING,但不是在庄园指出.使用后需要连接回原始表HAVING
SELECT DISTINCT T.Account, T.SalesMan
FROM T
INNER JOIN
( SELECT Account
FROM T
GROUP BY Account
HAVING COUNT(DISTINCT SalesMan) > 1
) Dupes
ON Dupes.Account = T.Account
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11553 次 |
| 最近记录: |