2016-03-17 51 views
0

I创建表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 
+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) 
+0

谢谢你的朋友... –

0

您需要:

你的情况:

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

谢谢朋友... –