牛客网MYSQL练习题
1,对时间函数多使用,灵活使用。
2.查找入职员工时间排名倒数第三的员工所有信息
对于此类题目不能盲目的排序,然后LIMIT 最好通过子查询先取重一遍。
select *
from
employees
where hire_date=(select distinct hire_date from employees order by hire_date desc limit 2,1);
3.!= ,<>,只用于单值的判断,这里emp_no有多值,只能用in
4.mod(id,2)=1 奇数的取法
5.查找当前薪水(to_date=‘9999-01-01’)排名第二多的员工编号emp_no、薪水salary、last_name以及first_name,不准使用order by
SELECT e.emp_no,salary,last_name,first_name FROM employees e
JOIN
salaries s
ON e.emp_no=s.emp_no AND to_date='9999-01-01'
WHERE salary=(SELECT MAX(salary) FROM salaries WHERE salary<(select max(salary) from salaries))
不用order by的话,那么通过子查询选择最高的,然后再在最高里面选择小于他的最高的
6.查找员工编号emp_no为10001其自入职以来的薪水salary涨幅值growth
SELECT (
(SELECT salary FROM salaries WHERE emp_no = 10001 ORDER BY to_date DESC LIMIT 1) -
(SELECT salary FROM salaries WHERE emp_no = 10001 ORDER BY to_date ASC LIMIT 1)
) AS growth
博客围绕牛客网MySQL练习题展开,介绍解题要点。包括要灵活运用时间函数,查找入职时间排名倒数第三员工信息时先子查询去重,多值判断用in,取奇数用mod(id,2)=1,不使用order by查找薪水排名第二的方法,以及计算员工薪水涨幅值等。

2180

被折叠的 条评论
为什么被折叠?



