列出平均升序的部门和平均工资

时间:2016-03-17 14:39:58

标签: oracle

我创建了表EmployeeDepartmentEmployee表包含员工详细信息,其中包含薪水和部门ID作为外键。

我想以平均升序排列显示列表部门和平均工资。

department表包含deptid和deptnm。

DEPTID(pk)    DEPTNM        DHEAD 
------------------------
1           COMPUTER      PATIL SIR 
2           MARATHI       PAWAR SIR 
3           MICRO         JADHAV SIR 
4           BIOTECH       BHOSALE SIR 
5           BOTANY        JADHAV SIR 

EMPID(pk) LASTNAME FIRSTNAME MIDDLENAME   DOB      DOJ    SALARY EMPDEPTID 
----------------------------------------------------------------------------
1      PAWAR    SIDDHANT  SANGHA     29-APR-97   02-JUL-15  10000     1   
2      ADKE     SHUBHAM   GIRISH     02-AUG-96   03-AUG-15  9000      2   
3      CHOUGULE NEERAJ    SUBHASH    01-MAR-94   05-DEC-15  7000      3  
4      MOTE     AJAY      SHAHAJI    05-JUN-96   10-NOV-15  4500      4   
5      SAHASTRA ASHWIN    MADAN      21-NOV-96   21-NOV-15  9000      5   

2 个答案:

答案 0 :(得分:0)

然后,你需要按部门分组并计算平均工资,按它排序。如果Department.DEPTNM不唯一,我们会按DEPTID分组:

SELECT Employee.EMPDEPTID, AVG(Employee.SALARY) as AVERAGE_SALARY 
FROM Employee
GROUP BY Department.DEPTID
ORDER BY AVG(Employee.SALARY)

如果您需要获取部门名称,则可以在以下后加入Department

SELECT * FROM (    

 SELECT Employee.EMPDEPTID, AVG(Employee.SALARY) as AVERAGE_SALARY 
 FROM Employee
 GROUP BY Department.DEPTID
 ORDER BY AVG(Employee.SALARY)

) as AVG_SALARY_PER_DEPT

JOIN Department ON (Department.DEPTID = AVG_SALARY_PER_DEPT.EMPLDEPTID)

答案 1 :(得分:0)

你需要:

在你的情况下:

SELECT AVG(SALARY), DEPTID, DEPTNM, DHEAD
    FROM department
      INNER JOIN employee
        ON (DEPTID = EMPDEPTID)
GROUP BY DEPTID, DEPTNM, DHEAD
ORDER BY 1