SQL算吗?不知道该怎么做

SQL count? Not sure how to go about

基本上我有一个 table 有帐户和代码。代码是 4 位代码 CAWE CPEE CWWE CBEW 等。 每次访问帐户时,它都会在上面留下一个代码。 所以账号30040可以在这个table500次。 我想弄清楚如何提取具有 CBEW 代码且只有 1 个访问条目的帐户。

请帮助我:) 我是 SQL 的新手,所以请多关照!

您可以使用 group byhaving:

select accnt
from table
group by accnt
having count(*) = 1 and max(code) = 'CBEW';

这会找到只有一行的帐户,并确保该行包含您要查找的代码。

这应该可以满足您的要求

SELECT accnt FROM mytable
WHERE code = 'CBEW'
GROUP BY code
HAVING COUNT(code) = 1

我突然想到了 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')