SQL中的一些错误

时间:2015-10-23 14:26:35

标签: sql oracle-apex

我正在使用APEX对SQL进行分配,我遇到了一些错误,我做错了什么?

enter image description here

下面是我的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;`

2 个答案:

答案 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;