1.SQL2 查找入职员工时间排名倒数第三的员工所有信息
文章图片
select *
from employees
ORDER by hire_date desc
LIMIT2,1
【牛客SQL刷题-2021-11-20 day1】 注意:limit n,m :含义是大于n的第一个整数,一共m个
2.SQL5 请你查找所有已经分配部门的员工的last_name和first_name以及dept_no,也包括暂时没有分配具体部门的员工
文章图片
select e.last_name
,e.first_name
,IFNULL(NULL,d.dept_no)from employees e
left JOINdept_emp d on e.emp_no=d.emp_nov
注意:ifnull(m,n):代表的含义是如果是空值null,则传入参数m,否则传入n
3.SQL15 查找employees表emp_no与last_name的员工信息
文章图片
select *
from employees
where last_name !='Mary'
and mod(emp_no,2)!=0
#in (
#select emp_no
#from employees
#where mod(emp_no,2)!=0
#)
ORDER byhire_date desc
注意:mod(m,n)含义m除n取余
4.查找在职员工自入职以来的薪水涨幅情况
文章图片
文章图片
select v.emp_no,v.salary-b.salary
from (
select emp_no,salary
from salaries
where to_date='9999-01-01'
)v left join # (select a.*
# from (
# select emp_no
#,salary
#,to_date
#,rank() over(partition by emp_no order by from_date) as rk
# from salaries
# )a # where a.rk=1 )b (
select emp_no
,salary
,min(from_date)from salaries
group by emp_no )b on b.emp_no=v.emp_no
order by v.salary-b.salary
解题思路:求涨幅问题。利用两表连接,一个计算pre值,另一个计算now值
5.SQL33 创建一个actor表,包含如下列信息
文章图片
drop table if exists`actor` ;
CREATE TABLE actor(
actor smallint(5) NOT null ,
first_name varchar(45)NOT null ,
last_namevarchar(45)NOT null ,
last_updatedate NOT null )
推荐阅读
- SQL|mysql牛客刷题(SQL大厂面试真题)
- MySQL|基础查询语句
- mysql|MySQL性能优化21个最佳实践,一个一个分解给你看,还怕搞不定()
- 数据库|数据库系统概论笔记
- MySQL|数据库mysql增删查改操作指令
- SQL数据库|SQL数据库实操 第五波 完整性约束和触发器
- MySql|MySQL之四种SQL性能分析工具
- CockroachDB|CockroachDB: The Resilient Geo-Distributed SQL Database 论文阅读笔记
- 数据库|MySql -- 不存在则插入,存在则更新或忽略