sql - 获取3名或3名以上来自同城的员工列表?

标签 sql sql-server select count group-by

我使用以下查询来查找拥有超过 3 名员工的城市名称

SELECT M.NAME
FROM MasterCity M
INNER JOIN Employee E ON E.CityID = M.ID
GROUP BY E.CityID
HAVING count(E.CityID) >= 3;

它给了我以下错误

Column 'MasterCity.Name' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

怎么了?提前致谢

最佳答案

变体 #1 -

SELECT MAX(M.Name) AS Name
FROM MasterCity M 
JOIN Employee E ON E.CityID = M.ID
GROUP BY E.CityID
HAVING COUNT(E.CityID) >= 3;

变体 #2 -

SELECT M.Name
FROM MasterCity M 
JOIN Employee E ON E.CityID = M.ID
GROUP BY E.CityID, M.Name
HAVING COUNT(E.CityID) >= 3;

关于sql - 获取3名或3名以上来自同城的员工列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20900456/

相关文章:

sql-server - 请求错误 : { message: 'Requests can only be made in the LoggedIn state, not the SentLogin7WithStandardLogin state' , 代码: 'EINVALIDSTATE' }

php - 不分组就不能单独选择行

mysql - SELECT COLUMN 和 COUNT 区分大小写,mysql?

sql - 排除某些列中具有相同值的行

sql - 如何使用 update_all but every ?有更好的方法吗?

c# - 使用 CancellationToken 取消 SQL Server 查询

sql - 按先前组减去先前值 - SQL Server

mysql - 多个查询需要合并结果 phpMyAdmin

sql - SQL 2005 索引 View 的缓慢

sql - 如何在 Excel 工作表中的命名范围上运行 SQL 语句?