You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL JOIN查询错误修正:获取符合条件的城市及关联员工数

问题排查与SQL修正

原查询的问题点

  • SELECT子句不符合需求且违反分组规则:原语句选取了emp.Name、emp.id,但需求仅需返回城市名称和对应员工数量;同时根据SQL标准,非聚合列必须出现在GROUP BY子句中,原查询仅按city_emp.city分组,会导致语法或结果错误。
  • 聚合函数使用错误:需求需要统计员工数量,应使用COUNT()而非AVG(emp.Age)(AVG仅在HAVING中用于筛选条件,无需在SELECT中返回,除非额外需要展示平均年龄)。

修正后的SQL查询

SELECT city_emp.city, COUNT(DISTINCT emp.id) AS employee_count
FROM Emp_det emp 
JOIN CityWorkers city_emp ON emp.id = city_emp.id
GROUP BY city_emp.city
HAVING AVG(emp.Age) > 25 
ORDER BY city_emp.city ASC

修正说明

  1. 调整SELECT子句:仅保留需求的城市名称city_emp.city,用COUNT(DISTINCT emp.id)统计关联员工数量(若Emp_det与CityWorkers是一一关联,也可简化为COUNT(*)),并给统计列起别名employee_count便于识别。
  2. 确保GROUP BY与SELECT非聚合列一致:仅按城市分组,符合SQL语法规则。
  3. 保留HAVING子句的平均年龄筛选条件,满足“仅展示员工平均年龄大于25的城市”的需求。
  4. 明确ORDER BY的排序方向为ASC(升序),语义更清晰。

内容的提问来源于stack exchange,提问作者Michal David

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 09:05:22