Hackerrank SQL挑战:公司人员统计查询报错问题求助
你的SQL代码无法运行的原因分析
你的代码存在两个关键错误,导致无法正常执行:
1. JOIN语法不符合SQL规范
SQL中JOIN的正确写法是先指定要连接的目标表,再通过ON子句定义关联条件。你写的:
join employee.company_code =company.company_code
完全错误,正确格式应该是先声明要连接的表(比如JOIN Employee e),再用ON指定匹配规则(比如ON e.company_code = Company.company_code)。
2. 引用了未纳入查询的表字段
你在SELECT子句中使用了Lead_Manager.lead_manager_code、Senior_Manager.senior_manager_code、Manager.manager_code这些字段,但你的查询仅从Company表开始,没有通过JOIN将Lead_Manager、Senior_Manager、Manager这三张表加入查询范围。SQL引擎无法识别这些未被引入的表,会直接抛出字段不存在的错误。
示例代码能正常运行的核心原因是:Employee表本身已经包含了lead_manager_code、senior_manager_code、manager_code这些所需字段,不需要额外关联其他表,仅通过关联Company和Employee两张表,就能用COUNT(DISTINCT ...)统计出各类角色的唯一数量。
内容的提问来源于stack exchange,提问作者ShyCoffee
相关产品推荐
相关产品推荐

