聚合函数中的附加列

时间:2014-01-16 15:37:05

标签: sql oracle

我有两张桌子:

EMP表(员工表):

CREATE TABLE EMP
(
"ID" NUMBER, 
"DEPT_ID" NUMBER, 
"NAME" VARCHAR2(30),
 PRIMARY KEY ("ID") ENABLE,  
 FOREIGN KEY ("DEPT_ID") REFERENCES DEPARTMENT ("ID") ENABLE
);

DEPARTMENT表:

CREATE TABLE DEPARTMENT 
(
"ID" NUMBER, 
"NAME" VARCHAR2(30), 
 PRIMARY KEY ("ID")  
);

我想写一个查询,它会显示

DEPARTMENT.ID | DEPARMTENT.NAME | COUNT of employees working at the department.

我知道怎么显示id,但后来我无法显示名字。怎么做?部门名称不是唯一的,因此使其复杂化。 DEPARTMENT ID可以不分配给任何员工。

查询:

select d.id, count(e.id)
from emp e
right join department d
on e.DEPT_ID = d.ID
group by d.id
order by d.id;

显示id和count,但没有名称。

1 个答案:

答案 0 :(得分:4)

你可以这样做:

select d.id, d.name, count(e.id)
from emp e
right join department d
on e.DEPT_ID = d.ID
group by d.id, d.name
order by d.id;

department.name并不是唯一的,因为department.id and department.name的组合是不同的......