我正在研究SQL语句中的Group by
和Having
子句。在下一页中,我想要的是数据库中国家/地区包含5个以上客户的所有客户。
所以我用
SELECT *
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5
在https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_having中
但是此选择仅返回组中的第一条记录,而不返回组中的所有记录。为什么?
但是select仅返回组中的第一条记录,而不返回组中的所有记录。为什么?
因为每组一行是GROUP BY
操作。
要做您想做的事情是找出哪个国家的客户超过五个,然后返回这些国家的所有记录:
SELECT * FROM Customers WHERE Country IN
(SELECT Country FROM Customers GROUP BY Country HAVING COUNT(CustomerID) > 5)