基本上我有一个有accnt和代码的表。代码是4位数代码CAWE CPEE CWWE CBEW等。 每次访问accnt时,都会在其上留下代码。 因此帐户30040可以在该表中500次。 我试图找出如何拉出具有CBEW代码且只有1个访问条目的帐户。
请帮帮我:) 我是SQL的新手,所以请你好!
答案 0 :(得分:3)
这应该按照你的要求进行
SELECT accnt FROM mytable
WHERE code = 'CBEW'
GROUP BY code
HAVING COUNT(code) = 1
答案 1 :(得分:1)
您可以使用group by
和having
:
select accnt
from table
group by accnt
having count(*) = 1 and max(code) = 'CBEW';
这会找到只有一行的帐户,并确保该行包含您要查找的代码。
答案 2 :(得分:0)
在我的脑海中,我想到了WITH子句。像这样的东西: (注意:我还没有检查过这段代码;但是应该有点正确)
WITH OnceAccessedAccounts AS (
SELECT accnt, COUNT(*)
FROM AccntCodeTable
GROUP BY accnt
HAVING COUNT(*) = 1
)
SELECT
ACT.accnt
FROM
AccntCodeTable ACT
WHERE
(ACT.accnt IN (OnceAccessedAccounts.accnt))
AND (ACT.Code = 'CBEW')