【携程】统计各部门平均实发薪资
WHERE 条件JOIN 连接聚合函数GROUP BYORDER BY标签画像面试真题
题目描述
来源:携程 SQL 面试真题
某公司需要结合员工信息和薪资信息,统计各部门符合薪资范围要求的员工平均实发薪资。
数据表
staff_tb 员工信息表
| 字段 | 类型 | 说明 |
|---|---|---|
| staff_id | BIGINT | 员工 ID |
| staff_name | VARCHAR | 员工姓名 |
| staff_gender | VARCHAR | 员工性别 |
| post | VARCHAR | 员工岗位类别 |
| department | VARCHAR | 员工所在部门 |
salary_tb 员工薪资信息表
| 字段 | 类型 | 说明 |
|---|---|---|
| salary_id | BIGINT | 薪资信息 ID |
| staff_id | BIGINT | 员工 ID |
| normal_salary | DECIMAL | 标准薪资 |
| dock_salary | DECIMAL | 扣除薪资 |
题目要求
- 实发薪资 = 标准薪资 - 扣除薪资。
- 剔除实发薪资小于 4000 或大于 30000 的员工,即只保留实发薪资在 4000 至 30000 之间(含边界)的员工。
- 按部门统计平均实发薪资,四舍五入保留 3 位小数。
- 按平均实发薪资降序排列;平均实发薪资相同时按部门升序排列。
期望输出列
| 列名 | 说明 |
|---|---|
| department | 员工所在部门 |
| avg_salary | 部门平均实发薪资 |
数据样例
| staff_idPKBIGINT | staff_nameVARCHAR(50) | staff_genderVARCHAR(10) | postVARCHAR(50) | departmentVARCHAR(50) |
|---|---|---|---|---|
| 1 | Angus | male | Financial | dep1 |
| 2 | Cathy | female | Director | dep1 |
| 3 | Aldis | female | Director | dep2 |
| 4 | Lawson | male | Engineer | dep1 |
| 5 | Carl | male | Engineer | dep2 |
| 6 | Ben | male | Engineer | dep1 |
| 7 | Rose | female | Financial | dep2 |
输入数据显示 7 / 7 行
SQL 编辑器正在保存草稿...
Ctrl + Enter 运行
正在加载 SQL 编辑器...
运行你的 SQL 查询后,结果将显示在这里