获取所有部门中员工薪水最高的相关信息

  • 题目
  • 题目分析
  • 错误答案____max 函数 和select
    • listagg 函数的其他用法之后再补充
  • 题目补充

题目

有一个员工表dept_emp简况如下:

有一个薪水表salaries简况如下:

获取所有部门中员工薪水最高的相关信息,给出dept_no, emp_no以及其对应的salary,按照部门编号升序排列,以上例子输出如下:

题目分析

  • 题目要点:薪水最高(max),升序排列(order by asc)
  • 结果需要三条信息,在两个表中——join 关键字
  • dept_no在dept_emp表,salary在salaries表中,使用emp_no连接(on)

错误答案____max 函数 和select


select d.dept_no,d.emp_no,max(s.salary)
from dept_emp as d
left join salaries as s
on d.emp_no = s.emp_no
group by dept_no
order by dept_no;

这里3和4号员工是一个部门,但是select 和max 一起用就把 4的工资给了3

这里涉及问题:group by 某字段后,其他字段如何处理

  1. 对数值可以使用函数:sum、max、min,但是不能保证是同一列的信息,select函数默认取第一行,而max 函数会把最大值拼在第一行
  2. 对字符串可以使用 listagg函数

listagg 函数的其他用法之后再补充

#将部门合并,展示部门员工编号
select d.dept_no,listagg(d.emp_no)
from dept_emp
group by dept_no;
#这个没有测试

题目补充

如果存在多个最大值,其他的值怎么取到

使用多个select 语句,创建多个过程表

#可能存在多个最大值,会舍弃其他的
SELECT currentsalary.dept_no, currentsalary.emp_no, currentsalary.salary AS salary
FROM
#创建maxsalary表用于存放当前每个部门薪水的最大值
(SELECT d.dept_no, MAX(s.salary) AS salary
FROM salaries AS s INNER JOIN dept_emp As d
ON d.emp_no = s.emp_no
WHERE d.to_date = '9999-01-01' AND s.to_date = '9999-01-01'
GROUP BY d.dept_no) AS maxsalary,
#创建currentsalary表用于存放当前每个部门所有员工的编号和薪水
(SELECT d.dept_no, s.emp_no, s.salary
FROM salaries AS s INNER JOIN dept_emp As d
ON d.emp_no = s.emp_no
WHERE d.to_date = '9999-01-01' AND s.to_date = '9999-01-01'
) AS currentsalary
#限定条件为两表的dept_no和salary均相等
WHERE currentsalary.dept_no = maxsalary.dept_no
AND currentsalary.salary = maxsalary.salary
#最后以currentsalary.dept_no排序输出符合要求的记录表
ORDER BY currentsalary.dept_no

获取所有部门中员工薪水最高的相关信息相关推荐

  1. [SQL实战]之获取所有部门中当前员工薪水最高的相关信息

    题目描述 获取所有部门中当前员工薪水最高的相关信息,给出dept_no, emp_no以及其对应的salary CREATE TABLE dept_emp ( emp_no int(11) NOT N ...

  2. 牛客 SQL:获取每个部门中当前员工薪水最高的相关信息

    题目:获取每个部门中当前员工薪水最高的相关信息 代码: SELECT de.dept_no, de.emp_no, sa.salary FROM dept_emp AS de INNER JOIN s ...

  3. mysql查询每个部门工资最高的员工信息_获取每个部门中当前员工薪水最高的相关信息...

    79 目前的一些"正确答案"其实不对,因为emp_no是随机返回的,而不是与最大工资相对应的那个 [知识点] 使用group by子句时,select子句中只能有聚合键.聚合函数. ...

  4. [爬虫实战]利用python快速爬取NCBI中参考基因组assembly的相关信息

    1.问题导向 最近在做某个课题的时候,按老师的要求需要从NCBI中批量下载不同物种的参考基因组,同时收集相应参考基因组的一些组装信息,基因组非常多,导致工作量巨大,一个一个手动收集的话,既费时又费力, ...

  5. 爬取QQ音乐中一首歌的相关信息及评论(破解反爬虫、多协程队列爬虫)

    刚写完这个实验作业,顺便来记录一下一些易错的地方: 目录 一.页面预览 二.其他信息 三.一些小细节 四.源码 项目框图: 一.页面预览 先从歌手页爬取到这首歌的相关信息,包括它歌曲.专辑的url.这 ...

  6. 如何获取搜索引擎的来源,以及搜索引擎的相关信息

    本文来源于:http://www.java3z.com/cwbwebhome/article/article5/51093.html 在做商务E流量分析的时候,需要实现一个功能:如果访客是通过搜索引擎 ...

  7. 10-245 A4-6查找订单表中特定顾客编号的相关信息

    分数 20 全屏浏览题目 切换布局 作者 柯海丰 单位 浙大城市学院 查询订单表(orders)中以字母V打头的顾客编号(CustomerID)产生的订单信息,结果显示为顾客编号(CustomerID ...

  8. 使用VMware VSphere WebService SDK进行开发 (四)——获取集群(Cluster, ComputeResource)的相关信息

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  9. Java获取linux服务器cpu、内存、硬盘相关信息

    需要用到jcraft依赖,如果依赖失效,请前往官方获取jcraft官网,maven地址https://search.maven.org/artifact/com.jcraft/jsch <dep ...

最新文章

  1. LINUX防火墙打开与关闭
  2. 跨链(5)“蚂蚁区块链”之跨链数据连接服务
  3. 《研磨设计模式》chap9 原型模式Prototype
  4. linux 命令后面的参数小叙
  5. oracle查看序列数据语法,oracle查询各种数据字典的语法
  6. python和gui结合实例_Python GUI —— 简单例子+讲解
  7. python编程输入三个数按大小输出_编程:输入3个数,按从小到大的顺序输出
  8. HDOJ--1106排序
  9. Canvas坐标轴中的Y轴距离是X轴的两倍
  10. 《Python密码学编程》——2.6 本书的文本换行
  11. 第一次参加公司研发部门高级别会议之感
  12. linux 磁盘配额 期限,linux磁盘配额管理
  13. Python的seek函数
  14. 去广告:去除2345好压、Flash插件等的广告
  15. Mybatis什么时候用resultMap,什么时候用resultType
  16. VS2008试用版破解方法
  17. html中radio设置默认值
  18. 所谓框架到底是什么?
  19. Zabbix 监控MySQL最大连接数
  20. 动态图片怎么制作 html,AE教程:怎么制作出GIF动态图

热门文章

  1. 微信小程序学习用demo:同乐居商城:购物车合算(适用1221)
  2. Android 开发技巧总结(二)
  3. Java实现两个日期相减获得相差的小时数
  4. 浅谈SEO学习方法和心态
  5. 有锁机保基带升级完美越狱工具Sn0wbreeze使用教程
  6. TI AWR1843毫米波雷达采集三维点云数据(ROS)
  7. android通过代码设置铃声_有打扰 漏消息?那是Android手机通知设置没弄好!
  8. RK3566,ES7202声卡驱动添加
  9. Revit插件推荐[二]
  10. 二级vb笔试题库__全国计算机等级考试,XYZ计算机等级考试题库系统(二级VB)