为什么选择*只返回组中的第一条记录?

问题描述 投票:0回答:1

我正在研究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

但是此选择仅返回组中的第一条记录,而不返回组中的所有记录。为什么?

sql select having
1个回答
0
投票

但是select仅返回组中的第一条记录,而不返回组中的所有记录。为什么?

因为每组一行是GROUP BY 操作

要做您想做的事情是找出哪个国家的客户超过五个,然后返回这些国家的所有记录:

SELECT * FROM Customers WHERE Country IN
(SELECT Country FROM Customers GROUP BY Country HAVING COUNT(CustomerID) > 5)
© www.soinside.com 2019 - 2024. All rights reserved.