sql - 如何使用employee_id和emp_name选择每个部门的员工的最大(薪水)
问题描述
我想选择 emp_id,department_id,max(salary) 每个部门,但我使用 group by department_id 并且它有错误 ora-00979
3列在同一个表中(员工)
我该如何解决
select department_id, employee_id as "ID",first_name || ' ' || last_name as "Name",max(salary)as "SALARY"
from EMPLOYEES
group by department_id
order by department_id;
解决方案
您可以使用keep
:
select department_id,
max(employee_id) keep (dense_rank first order by salary desc) as "ID",
max(first_name || ' ' || last_name) keep (dense_rank first order by salary desc, employee_id desc) as "Name",
max(salary) as "SALARY"
from employees e
group by department_id
order by department_id;
推荐阅读
- vba - 尝试在一天内获取 MS Access 查询时间
- ramda.js - 如何在 R.zipWith 中使用预定义函数
- javascript - Redux 表单 - 在没有按钮但在字段更改时提交
- javascript - React 错误 - 无法对未安装的组件执行 React 状态更新
- python - 使用 idxmax 和 idxmin 更改不同行中的值
- python - 当 y = 0 时,具有空气阻力的弹丸找到时间
- go - 如何将 map[string]*structpb.ListValue 转换为 map[string][]string
- mysql - 如何从codeigniter中的模型生成json格式到Highchart
- react-native - 在 React Native 应用程序中上传相机拍摄的图像时出现错误“请求失败,状态码 413”
- r - 如何用数据添加时间?