为什么 Select * 只有 return 组中的第一条记录?

Why Select * Only return the first record in a group?

我正在研究 SQL 语句中的 Group byHaving 子句。在下面的页面中,我想要的是所有国家在数据库中包含超过5个客户的客户。

所以我用

SELECT * 
FROM Customers 
GROUP BY Country 
HAVING COUNT(CustomerID) > 5

https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_having

但是这个select只是returns组中的第一条记录,并不是组中的所有记录。为什么?

But select only returns the first record in the group, not all records in the group. Why?

因为每组一行是 GROUP BY 所做的

做您想做的事情的方法是找出哪些国家/地区的客户超过 5 个,然后 return 来自这些国家/地区的所有记录:

SELECT * FROM Customers WHERE Country IN
(SELECT Country FROM Customers GROUP BY Country HAVING COUNT(CustomerID) > 5)