SQL COUNT函数的结果“大于或等于”

Bel*_*gor 4 sql count

我目前有一个查询,该查询返回每个客户拥有的帐户总数,但是如何使它仅返回拥有多个帐户的客户?

SELECT C.customerID, COUNT(O.accNumber) AS "total"
FROM Customer C, Owns O
WHERE C.customerID = O.customerID
GROUP BY C.customerID
Run Code Online (Sandbox Code Playgroud)

Gor*_*off 6

您的问题的答案是HAVING。但是,您需要学习使用正确的JOIN语法。简单规则: 请勿FROM子句中使用逗号。 始终使用显式JOIN语法。

SELECT C.customerID, COUNT(O.accNumber) AS total
FROM Customer C JOIN
     Owns O
     ON C.customerID = O.customerID
GROUP BY C.customerID
HAVING COUNT(*) > 1;
Run Code Online (Sandbox Code Playgroud)

实际上,您甚至不需要JOIN

SELECT o.customerID, COUNT(o.accNumber) AS total
FROM Owns o
GROUP BY o.customerID
HAVING COUNT(*) > 1;
Run Code Online (Sandbox Code Playgroud)

这要简单得多。