首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谁向员工支付最高的平均工资?

谁向员工支付最高的平均工资?
EN

Stack Overflow用户
提问于 2016-12-05 14:37:38
回答 1查看 142关注 0票数 1

有两张桌子:

代码语言:javascript
复制
Employee

e_id | e_name | m_id | d_id | salary | bonus
  1     Andi     3      B     56000    10000
  2     Sam      4      A     24000
  3     Dave            A     89000    23000
  4     Mike     3      C     62000    15000
  5     Red      1      B     42000
  6     Don      1      C     37000
  7     Bill     4      C     39000

代码语言:javascript
复制
Department

d_id | d_name | mg_id | location
 A       Dep1     3       US
 B       Dep2     1       DE
 C       Dep3     4       RU

部门中的m_id显示管理部门的e_id;员工中的mg_id显示作为相应员工的经理的e_id。

我发现管理人员使用以下查询:

代码语言:javascript
复制
SELECT Employee.e_name
  FROM Employee
    INNER JOIN Department
    ON Employee.e_id = Department.mg_id
    AND Employee.d_id = Department.d_id;

问题是如何找到哪个经理给他的员工支付最高的平均工资(+奖金)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-05 14:54:25

你可以..。

代码语言:javascript
复制
SELECT DeptHead.e_name, average(Employee.salary)
  FROM Department
   INNER JOIN Employee
       ON Employee.d_id = Department.d_id
   INNER JOIN Employee as DeptHead
       ON DeptHead.e_id = Department.mg_id
 GROUP BY DeptHead.e_name
 ORDER BY average (Employee.salary) DESC
  LIMIT 1;

这将将部门连接到employee表两次,一次用于获取部门主管的信息,另一次用于获取员工信息。正因为如此,其中一个必须被“化名”。对于员工信息,可以按其分组,并使用聚合函数获取平均薪资。通过降序,你得到了最高的第一,而限制在仅仅第一记录,你只得到第一=最高。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40976761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档