打卡第3天 -- 3S2A1P : 三道sql,2道算法,1道简
2020-09-09 本文已影响0人
CnLearn
打卡第3天 -- 3S2A1P : 三道sql,2道算法,1道简答
sql-1
https://www.nowcoder.com/practice/5a7975fabe1146329cee4f670c27ad55?tpId=82&&tqId=29771&rp=1&ru=/ta/sql&qru=/ta/sql/question-ranking
查找所有员工的last_name和first_name以及对应的dept_name,也包括暂时没有分配部门的员工
拆分:
没有分配部门的也需要显示: left join
select t.last_name,t.first_name,t.dept_name
from
(
employees e left join dept_emp de on e.emp_no=de.emp_no left join departments d on de.dept_no=d.dept_no
)t
sql-2
https://www.nowcoder.com/practice/c727647886004942a89848e2b5130dc2?tpId=82&&tqId=29772&rp=1&ru=/ta/sql&qru=/ta/sql/question-ranking
查找员工编号emp_no为10001其自入职以来的薪水salary涨幅(总共涨了多少)growth(可能有多次涨薪,没有降薪)
拆分:
因为只涨不降,所以求最大最小值即可: max() min()
select max(salary)-min(salary) as growth from salaries where emp_no=10001
sql-3
https://www.nowcoder.com/practice/6a62b6c0a7324350a6d9959fa7c21db3?tpId=82&&tqId=29774&rp=1&ru=/ta/sql&qru=/ta/sql/question-ranking
统计各个部门的工资记录数,给出部门编码dept_no、部门名称dept_name以及部门在salaries表里面有多少条记录sum
拆分:
信息链接:join
分组:group by
统计个数:count
select t.dept_no,t.dept_name,count(salary)
from
(
salaries s inner join dept_emp de on s.emp_no=de.emp_no inner join departments d on de.dept_no=d.dept_no
) t group by t.dept_no