我正在使用APEX对SQL进行分配,我遇到了一些错误,我做错了什么?
下面是我的SQL代码: 我还包含了一些带有我的代码的图片,以及显示的相应错误:图片的第一部分是早期版本,经过对可能出错的一些深入研究后,我将代码更改为代码在图片的第二部分。
SELECT departments.department_id, employees.department_id, employees.employee_id, departments.department_name, employees.salary,
COUNT(employee_id)
FROM HR.employees, HR.departments
WHERE departments.department_id = employees.department_id
GROUP BY department_id;`
SELECT departments.department_id, employees.department_id, employees.employee_id, departments.department_name, employees.salary,
COUNT(*)
FROM HR.employees, HR.departments
WHERE departments.department_id = employees.department_id
GROUP BY department_id;`
答案 0 :(得分:2)
我没有Apex专家,但是在第一个查询中,您正在进行COUNT而没有适当的GROUP BY子句。您需要按照您在集合函数中包含的所有其他列进行分组。
在第二个中,您按department_id分组,但您没有指定它是departments.department_id还是employees.department_id。选一个。
答案 1 :(得分:2)
您获得的错误(列含糊不清的)是由于以下原因:
GROUP BY department_id;
您有多个名为department_id
的可用列,并且它不知道要选择哪个列。您需要完全符合该字段的资格(例如:departments.department_id
)
但是一旦你解决了这个问题,你就会有另一个问题 - GROUP BY
将要求所有非聚合字段都包含在GROUP BY
子句中。
您应该使用以下内容作为GROUP BY
语句(针对您的第二个发布示例):
GROUP BY departments.department_id,
employees.department_id,
employees.employee_id,
departments.department_name,
employees.salary;