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

打卡第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

你可能感兴趣的:(打卡第3天 -- 3S2A1P : 三道sql,2道算法,1道简答)