195:请你查找employees里最晚入职员工的所有信息
select *
from employees
where hire_date = (select max(hire_date) from employees);
解题思路:使用子查询的方法,先找出所有入职时间里最大(即最晚)的时间,这样可以确保多条最晚入职时间都可以被查询出来。
196:查找入职员工时间排名倒数第三的员工所有信息
select * from employees
where hire_date = (select distinct hire_date from employees
order by hire_date desc limit 2,1);
在查询中,经常要返回前几条或者中间某几行数据时,用到limit
如果limit后面是一个参数,就是检索前多少行。如果limit后面是2个参数,就是从offset+1行开始,检索rows行记录。
select * from table_name limit 10;//检索前10行记录
select * from table_name limit 5 ,10;//从第6行开始,检索10行记录,即:检索记录行 6-15
distinct进行去重的主要原理是通过先对要进行去重的数据进行分组操作,然后从分组后的每组数据中去一条返回给客户端
SQL197 查找当前薪水详情以及部门编号dept_no
select s.*,d.dept_no
from salaries s join dept_manager d on s.emp_no = d.emp_no
where d.to_date = '9999-01-01' and s.to_date = '9999-01-01';
解题思路:以s.emp_no = d.emp_no为联结条件联结两表,同时限制两表to_date = '9999-01-01'(原因:去重锁定)
SQL198 查找所有已经分配部门的员工的last_name和first_name
select e.last_name,e.first_name,d.dept_no
from employees e left join dept_emp d on e.emp_no = d.emp_no
where d.dept_no is not null;
解题思路:employees作为主表,使用左联结,关键是where d.dept_no is not null;题目要查找所有已经分配部门的员工,意味着必须要带有dept_no,没有dept_no的就是还未分配部门的,去除dept_no为空即可求得。
SQL199 查找所有员工的last_name和first_name以及对应部门编号dept_no
select e.last_name,e.first_name,d.dept_no
from employees e left join dept_emp d on e.emp_no = d.emp_no;
左查看做表,右查看右表。
解题思路:employees作为主表,使用左联结。
SQL201 查找薪水记录超过15条的员工号emp_no以及其对应的记录次数t
select emp_no,count(distinct salary) t
from salaries
group by emp_no
having t > 15;
SQL202:找出所有员工当前(to_date='9999-01-01')具体的薪水salary情况,对于相同的薪水只显示一次,并按照逆序显示
select salary
from salaries
where to_date='9999-01-01'
group by salary
order by salary desc;
解题思路:关键理解对于相同的薪水只显示一次,使用分组方法对salary进行分组求得,也可以使用distinct去重的方法,但是一般数据较多时使用distinct效率相比group by 要慢,所以从性能角度考虑,应该尽量使用group by。
使用distinct方法如下:
select distinct salary
from salaries
where to_date='9999-01-01'
order by salary desc;
SQL204 获取所有非manager的员工emp_no
select e.emp_no
from employees e left join dept_manager d on e.emp_no = d.emp_no
where d.dept_no is null;
解题思路:employees作为主表,使用左联结,限定条件为d.dept_no为空,选出在employees但不在dept_manager中的emp_no记录。
参考:https://mp.weixin.qq.com/s/5vhfVJ7NW7-bq2d2EIbJwA
标签:01,204,dept,195,employees,no,牛客,emp,select From: https://www.cnblogs.com/LittleKevin/p/17172805.html