无法使用GROUP BY子句对ORACLE中的数据进行分组

时间:2013-12-28 10:44:29

标签: sql oracle join group-by

select offices.office_id,
count(staff_id)
from offices join  staffs using (office_id) join managers using (manager_id)
group by office_id;

我一直在

  

第1行的错误:ORA-25154:USING子句的列部分不能有限定符。

我正在计算不同办公室的员工总数。在这里,我按办公室ID对结果进行了分组。这里出了什么问题。

但如果我喜欢这个

select count(staff_id)
from offices join  staffs using (office_id) join managers using (manager_id)
group by office_id;

它以这种方式工作,因为我删除了offices.office_id column,所以只显示一列。但是我需要办公室ID和相应数量的员工并排在两列。

2 个答案:

答案 0 :(得分:1)

在查询中使用USING子句时,指定表名是多余的。只有列名称才是数据库的足够信息。例如 - select office_id。试试这个:

select office_id,
count(staff_id)
from offices join  staffs using (office_id) join managers using (manager_id)
group by office_id;

请参阅此类似问题:Cannot have a qualifier in the select list while performing a JOIN w/ USING keyword

答案 1 :(得分:1)

office_id是表格中的常用列。所以你必须指定别名或使用tablename.columnname

试试这个..

select offices.office_id,
count(staffs.staff_id)
from offices join  staffs on staffs.office_id=offices.office_id
join managers on managers.manager_id=staffs.manager_id
group by offices.office_id;