我目前有一个查询,该查询返回每个客户拥有的帐户总数,但是如何使它仅返回拥有多个帐户的客户?
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)
您的问题的答案是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)
这要简单得多。
| 归档时间: |
|
| 查看次数: |
5686 次 |
| 最近记录: |