我使用oracle 11g。我想要最高和最低薪水,以及每个部门的员工人数,所以我要这样做:
select d.department_id, d.department_name, max(salary), min(salary), count(*)
from employees e ,
departments d
where e.department_id = d.department_id
group by d.department_id, d.department_name;
它有效:
DEPARTMENT_ID DEPARTMENT_NAME MAX(SALARY) MIN(SALARY) COUNT(*)
------------- ------------------------------ ----------- ----------- ----------
100 Finance 12008 6900 6
50 Shipping 8200 2100 45
70 Public Relations 10000 10000 1
30 Purchasing 11000 2500 6
90 Executive 24000 17000 3
10 Administration 4400 4400 1
110 Accounting 12008 8300 2
40 Human Resources 6500 6500 1
20 Marketing 13000 6000 2
60 IT 9000 4200 5
80 Sales 14000 6100 34
11 rows selected.
那么count(*)
是什么意思?算部门还是什么?
答案 0 :(得分:0)
count(*)
返回与where语句匹配的行。
在您的情况下为where e.department_id=d.department_id
。
由于您通过count(*)
应用了一个组,因此将返回每个组(d.department_id
)的行数。
这意味着您将获得每个部门(e.department_id
)的雇员人数(d.department_id
)。