希望这个标题有意义......
假设我有一张员工表:
ID | Name | Title | Salary
----------------------------
1 | Bob | Manager | 15285
2 | Joe | Worker | 10250
3 | Al | Worker | 11050
4 | Paul | Manager | 16025
5 | John | Worker | 10450
我想做的是编写一个查询,根据员工头衔给出上表,以及平均工资列:
ID | Name | Title | Salary | Pos Avg
--------------------------------------
1 | Bob | Manager | 15285 | 15655
2 | Joe | Worker | 10250 | 10583
3 | Al | Worker | 11050 | 10583
4 | Paul | Manager | 16025 | 15655
5 | John | Worker | 10450 | 10583
我尝试使用子查询执行此操作:
Select *, (select Avg(e2.salary) from employee e2 where e2.title = e.title) from employee e
但是我已经意识到首先执行了子查询,并且不知道表别名e
我确信我错过了一些非常明显的东西,有人能指出我的正确方向吗?
答案 0 :(得分:3)
SELECT e.Id
, e.Name
, e.Title
, e.Salary
, g.PosAvg
FROM employee e
, (SELECT e.Title
, avg(Salary) PosAvg
FROM employee e
GROUP BY e.Title) g
WHERE e.Title = g.Title