- 博客(7)
- 收藏
- 关注
原创 SQL215 查找在职员工自入职以来的薪水涨幅情况
from_date) 注意这种写法是错的,因为这样做并没有只筛选在职员工,这样的话输出时会出现growth等于0,growth等于0的话在这个例子里就是离职员工的数据,因此我们要用下面的语句做筛选。
2024-10-23 21:21:43
198
原创 SQL213 查找所有员工的last_name和first_name以及对应的dept_name
这个题就是考LEFT JOIN 的用法,LEFT JOIN 可以使左表的行全部都显示出来,为什么要用这个?因为Koblick没有部门又要把这个人的信息都放出来,如果将两个表用JOIN链接就会将Koblick的信息将被剔除,而用LEFT JOIN 就可以将Koblick的信息显示出来。
2024-10-21 19:48:18
387
原创 获取当前薪水第二多的员工的emp_no以及其对应的薪水salary
这个题还挺有意思的,题的关键就是怎么筛选出薪水第二多。可以尝试用MAX函数,毕竟可以找到第一大的。首先我们找到工资最高的,如果将此变出一个表,再SELECT查这个表没有意义。我们可以将最高工资变为筛选条件,筛选出小于它的工资,再在小于它的临时工资表中,找到最大的工资,这样就变成了薪水第二高的工资了。
2024-10-18 21:06:32
430
原创 获取每个部门中当前员工薪水最高的相关信息
有了这个最大的maxSalary我们就可以筛选出想要的一行数据了,但此时并不能用WHERE,因为没有一个完整的表包括emp_no,dept_no,salary三列数据,因此我们需要做一份包含这三列数据的表就是t1,最后我们用dept_no将两个表连接在一起,用AND 的最大工资筛选出所需的数据。and t1.salary=t2.maxSalary #注意这句话不能因为t1的salary必须扔掉。
2024-10-17 21:40:37
510
原创 获取所有员工当前的manager
ON de.dept_no=dm.dept_no #这一步使我们可以将两个表链接在一起,然后我们就能通过dm表找出部门经理(如果不链接的话,就不能查询了)AND dm.emp_no!=de.emp_no #这一步使我们可以筛选出部门经理自己,这样就能筛选出普通员工了。
2024-10-16 22:13:47
207
原创 查找入职员工时间排名倒数第三的员工所有信息
入职员工时间有可能重复,题目也没规定同一入职时间的员工算排名时是否相同。因此我们只能具体问题具体分析,看输入中发现大家的入职时间有相同的的,因此需要用distinct 加ORDER BY进行筛选。
2024-10-15 21:36:44
203
原创 查找最晚入职员工的所有信息
注意最晚入职员工可能不止一个,因此不能用ORDER BY 来直接找最后一行,可以用WHERE加子查询和MAX函数找到最晚入职日期,并筛选出对应员工,如果硬要用ORDER BY 的话 也可以用 (SELECT distinct hire_date FROM employees ORDER BY hire_date DESC LIMIT 1)
2024-10-14 21:33:26
231
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人