簡體   English   中英

使用子查詢查找每個部門員工的平均工資,按年齡對部門內的員工進行排序

[英]Using sub-query find the average salary of employees for each department , order employees within a department by age

表員工

Name    Age Department      Salary
Ramesh  20  Finance         50,000
Deep    25  Sales           30,000
Suresh  22  Finance         50,000
Ram     28  Finance         20,000
Pradeep 22  Sales           20,000

如何解決使用子查詢?

使用 window function,

select name,age,department,salary.
avg(salary) OVER(partition by department order by age) AS avg_salary from Employee

OUTPUT

Name    Age Department  Salary  Avg_Salary
Ramesh  20  Finance        50,000     40, 000
Suresh  22  Finance        50,000     40, 000
Ram     28  Finance        20,000     40, 000
Pradeep 22  Sales          20,000     25, 000
Deep    25  Sales          30,000     25, 000

你可以使用:

select e.Name,
       e.Age,
       e.Department,
       e.Salary,
       tbl.avg_salary
from employees e
inner join ( select Department,
                    avg(Salary) as avg_salary 
             from employees
             group by Department
           ) as tbl on e.Department=tbl.Department
order by e.Department,e.Age asc;

https://dbfiddle.uk/IYBkuzw-

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM