打卡第4天 -- 3S2A1P : 三道sql,2道算法,1道简答

打卡第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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。