SQL查询获取第二高工资

问题描述 投票:0回答:1

我接到一个任务,要从我们的 SQL Server 数据库中获取每个部门和工作的所有员工的最低工资(忽略所赚取的佣金)。

这是一个例子:

总统 66928678326564667858690626367964989652716656468454687366900069324
emp_id 员工姓名 工作名称 经理_id 雇用日期 工资 佣金 dep_id
68319 凯灵 1991-11-18 6000.00 1001
火焰 经理 68319 1991-05-01 2750.00 3001
克莱尔 经理 68319 1991-06-09 2550.00 1001
乔纳斯 经理 68319 1991-04-02 2957.00 2001
猩红色 分析师 65646 1997-04-19 3100.00 2001
弗兰克 分析师 65646 1991-12-03 3100.00 2001
桑德琳 职员 69062 1990-12-18 900.00 2001
阿德琳 推销员 66928 1991-02-20 1700.00 400.00 3001
韦德 推销员 66928 1991-02-22 1350.00 600.00 3001
疯狂 推销员 66928 1991-09-28 1350.00 1500.00 3001
塔克 推销员 66928 1991-09-08 1600.00 0.00 3001
ADNRES 职员 67858 1997-05-23 1200.00 2001
朱利叶斯 职员 66928 1991-12-03 1050.00 3001
标记 职员 67832 1992-01-23 1400.00 1001
预期产量

emp_id68319 总统 火焰克莱尔乔纳斯韦德猩红色桑德琳朱利叶斯标记我在下面尝试了这个查询,但问题是它只返回工作、部门和薪水列。
员工姓名 工作名称 经理_id 雇用日期 工资 佣金 dep_id
凯灵 1991-11-18 6000.00 1001 66928
经理 68319 1991-05-01 2750.00 3001 67832
经理 68319 1991-06-09 2550.00 1001 65646
经理 68319 1991-04-02 2957.00 2001 65271
推销员 66928 1991-02-22 1350.00 600.00 3001 67858
分析师 65646 1997-04-19 3100.00 2001 63679
职员 69062 1990-12-18 900.00 2001 69000
职员 66928 1991-12-03 1050.00 3001 69324
职员 67832 1992-01-23 1400.00 1001
SELECT job_name, MIN(salary), dep_id FROM employees GROUP BY dep_id, job_name;

job_name | salary | dep_id -----------+---------+-------- PRESIDENT | 6000.00 | 1001 MANAGER | 2750.00 | 3001 MANAGER | 2550.00 | 1001 MANAGER | 2957.00 | 2001 SALESMAN | 1350.00 | 3001 ANALYST | 3100.00 | 2001 CLERK | 900.00 | 2001 CLERK | 1050.00 | 3001 CLERK | 1400.00 | 1001 (9 rows)

谁能帮我如何获取员工姓名?

SELECT e.emp_name, job_name, MIN(salary), dep_id FROM employees AS e GROUP BY dep_id, job_name;
sql sql-server subquery
1个回答
0
投票

您也可以尝试此查询来获取员工姓名。

    

© www.soinside.com 2019 - 2024. All rights reserved.