您当前的位置: 首页 >  sql

Dream丶Killer

暂无认证

  • 0浏览

    0关注

    188博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

(较难)SQL练习18:查找当前薪水排名第二多的员工编号emp_no

Dream丶Killer 发布时间:2021-01-31 22:45:27 ,浏览量:0

SQL练习18:查找当前薪水排名第二多的员工编号emp_no
      • 题目描述
      • 考察知识点
      • 解题思路

题目描述

有一个员工表 employees 简况如下: 在这里插入图片描述 有一个薪水表 salaries 简况如下: 在这里插入图片描述 请你查找薪水排名第二多的员工编号 emp_no、薪水 salarylast_name 以及 first_name ,不能使用 order by 完成,以上例子输出为: (温馨提示: sqlite 通过的代码不一定能通过 mysql ,因为 SQL 语法规定,使用聚合函数时,select 子句中一般只能存在以下三种元素:常数、聚合函数,group by 指定的列名。如果使用非 group by 的列名,sqlite 的结果和 mysql 可能不一样) 在这里插入图片描述

考察知识点

INNER JOINMAX,子查询。

解题思路

先利用 MAX() 函数找出 salaries 中当前薪水最高者,再找出小于最高薪水的 MAX(salary) ,即为第二高薪水。然后在内连接而成的表中根据题中条件筛选即可。

SELECT e.emp_no, salary, last_name, first_name
FROM employees AS e INNER JOIN salaries AS s
ON e.emp_no = s.emp_no
AND s.salary = (SELECT max(salary)
	             FROM salaries
	             WHERE salary             
关注
打赏
1655344294
查看更多评论
0.0394s