打卡第4天 -- 3S2A1P : 三道sql,2道算法,1道简答
sql-1
https://www.nowcoder.com/practice/218ae58dfdcd4af195fff264e062138f?tpId=82&&tqId=29753&rp=1&ru=/ta/sql&qru=/ta/sql/question-ranking
查找最晚入职员工的所有信息,为了减轻入门难度,目前所有的数据里员工入职的日期都不是同一天
拆分
最晚-->排序: order by
select * from employees order by hire_date desc limit 0,1
sql-2
https://www.nowcoder.com/practice/ec1ca44c62c14ceb990c3c40def1ec6c?tpId=82&&tqId=29754&rp=1&ru=/ta/sql&qru=/ta/sql/question-ranking
查找入职员工时间排名倒数第三的员工所有信息,为了减轻入门难度,目前所有的数据里员工入职的日期都不是同一天
拆分
倒数第三-->排序:order by
select * from employees order by hire_date desc limit 2,1
sql-3
https://www.nowcoder.com/practice/c63c5b54d86e4c6d880e4834bfd70c3b?tpId=82&&tqId=29755&rp=1&ru=/ta/sql&qru=/ta/sql/question-ranking
查找各个部门当前(dept_manager.to_date='9999-01-01')领导当前(salaries.to_date='9999-01-01')薪水详情以及其对应部门编号dept_no
(注:请以salaries表为主表进行查询,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列)
拆分
因为一个部门一个领导:所以不需要 group by
只需要使用 where 过滤
salaries 为主表,放在 join 左边
select s.*,d.dept_no from salaries s inner join dept_manager d on d.emp_no=s.emp_no where d.to_date='9999-01-01' and s.to_date='9999-01-01'order by s.emp_no