牛客网数据库SQL实战解析(1-10题)
牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0
牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010666669/article/details/104763370
牛客网数据库SQL实战解析(11-20题): https://blog.csdn.net/u010666669/article/details/104863298
牛客网数据库SQL实战解析(21-30题): https://blog.csdn.net/u010666669/article/details/104871373
牛客网数据库SQL实战解析(31-40题): https://blog.csdn.net/u010666669/article/details/104977904
牛客网数据库SQL实战解析(41-50题): https://blog.csdn.net/u010666669/article/details/104979427
牛客网数据库SQL实战解析(51-61题): https://blog.csdn.net/u010666669/article/details/104980372
第1题 查找最晚入职员工的所有信息
select *
from employees
where hire_date=(
select max(hire_date)
from employees
)
;
第2题 查找入职员工时间排名倒数第三的员工所有信息
select *
from employees
where hire_date=(
select distinct hire_date
from employees
order by hire_date desc
limit 2,1
)
;
limit语法:
limit 1,3 从1位置向后取3条记录。
limit 3 offset 1 等价于 limit 1,3。
第3题 查找各个部门当前(to_date='9999-01-01')领导当前薪水详情以及其对应部门编号dept_no
select t1.emp_no
, t1.salary
, t1.from_date
, t1.to_date
, t2.dept_no
from salaries t1, dept_manager t2
where t1.to_date='9999-01-01'
and t2.to_date='9999-01-01'
and t1.emp_no=t2.emp_no
;
第4题 查找所有已经分配部门的员工的last_name和first_name以及dept_no
select t1.last_name
, t1.first_name
, t2.dept_no
from employees t1, dept_emp t2
where t1.emp_no=t2.emp_no
and t2.dept_no is not null
;
第5题 查找所有员工的last_name和first_name以及对应部门编号dept_no,也包括展示没有分配具体部门的员工
select t1.last_name
, t1.first_name
, t2.dept_no
from employees t1
left join dept_emp t2
on t1.emp_no=t2.emp_no
第6题 查找所有员工入职时候的薪水情况,给出emp_no以及salary, 并按照emp_no进行逆序
select e.emp_no
, s.salary
from salaries s
left join employees e
on s.emp_no=e.emp_no
where s.from_date=e.hire_date
order by e.emp_no desc
;
第7题 查找薪水涨幅超过15次的员工号emp_no以及其对应的涨幅次数t
这道题目有问题,参考了提供的正确答案,把薪水变化都当成了涨幅,其实这样处理是有问题的,我按照题目的要求,重新写了下面的sql,虽然提交不通过,但是满足题意。
select t1.emp_no,count(*) t
from salaries t1
inner join salaries t2
on t1.emp_no=t2.emp_no
and t1.to_date = t2.from_date
where t1.salary < t2.salary
group by t1.emp_no
having t > 15
;
题目的要点:
1. 薪资涨了,如果先降了薪资,后来又涨了,也算涨了
2. 按照员工分
3. 大于15次
第8题 找出所有员工当前(to_date='9999-01-01')具体的薪水salary情况,对于相同的薪水只显示一次,并按照逆序显示
select distinct salary
from salaries
where to_date='9999-01-01'
group by emp_no
order by salary desc
;
题解:这道题很简单,按照要求取数,然后按照员工做group by,最后按照薪资做降序排列即可。
第9题 获取所有部门当前manager的当前薪水情况,给出dept_no, emp_no以及salary,当前表示to_date='9999-01-01'
select t1.dept_no
, t1.emp_no
, t2.salary
from dept_manager t1
left join salaries t2
on t1.emp_no=t2.emp_no
where t1.to_date='9999-01-01' and t2.to_date='9999-01-01'
;
第10题 获取所有非manager的员工emp_no
select emp_no
from employees
where emp_no not in (
select emp_no
from dept_manager
)
;
其他题解一:
mysql支持集合运算:EXPECT 集合差运算、UNION 集合并运算、INTERSECT 集合交运算
select emp_no
from employees
except
select emp_no
from dept_manager
;
其他题解二:
select t1.emp_no
from employees t1
left join dept_manager t2
on t1.emp_no = t2.emp_no
where dept_no is null
;
牛客网数据库SQL实战解析(1-10题)的更多相关文章
- 牛客网数据库SQL实战解析(51-61题)
牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...
- 牛客网数据库SQL实战解析(41-50题)
牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...
- 牛客网数据库SQL实战解析(31-40题)
牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...
- 牛客网数据库SQL实战解析(21-30题)
牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...
- 牛客网数据库SQL实战解析(11-20题)
牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...
- 牛客网数据库SQL实战1-查找最晚入职员工的所有信息
题目描述 查找最晚入职员工的所有信息CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`fi ...
- 牛客网数据库SQL实战(此处只有答案,没有表内容)
1.查找最晚入职员工的所有信息 select * from employees order by hire_date desc limit 1; --limit n表示输出前n条数据,limit ...
- 牛客网数据库SQL实战(21-25)
21.查找所有员工自入职以来的薪水涨幅情况,给出员工编号emp_no以及其对应的薪水涨幅growth,并按照growth进行升序CREATE TABLE `employees` (`emp_no` i ...
- 牛客网数据库SQL实战(16-20)
16.统计出当前各个title类型对应的员工当前薪水对应的平均工资.结果给出title以及平均工资avg.CREATE TABLE `salaries` (`emp_no` int(11) NOT N ...
随机推荐
- JAVA实现BP神经网络算法
工作中需要预测一个过程的时间,就想到了使用BP神经网络来进行预测. 简介 BP神经网络(Back Propagation Neural Network)是一种基于BP算法的人工神经网络,其使用BP算法 ...
- Hyper-V设置固定IP
win+x以管理员启动PowerShell 创建虚拟交换机,等同于在Hyper-V管理器界面中新建虚拟网络交换机 New-VMSwitch -SwitchName "NAT-VM" ...
- PHP vfprintf() 函数
实例 把一些文本写入到名为 "test.txt" 的文本文件: <?php高佣联盟 www.cgewang.com$number = 9;$str = "Beiji ...
- windows:shellcode 远程线程hook/注入(五)
前面几篇文章介绍了通过APC注入.进程注入.windows窗口处理函数回调.kernercallback回调执行shellcode,今天继续介绍通过heap Spray(翻译成中文叫堆喷射)执行she ...
- Tarjan 做题总结
这两天Tarjan复习完后把题做了做.洛谷题单<图的连通性>已经做得差不多了.大部分是Tarjan的题,所以写一篇小总结. T1 [模板] 缩点 不多bb.我已经写过关于Tarjan模板的 ...
- ios企业签名为什么会掉签?
我们都知道ios用户无法直接安装App Store之外的应用,对于那些无法上架苹果应用商店的APP,开发者们一般会选择苹果签名的形式. 目前的苹果签名有ios企业签名.超级签名和TF上架这三种 ...
- 【目标检测】:SPP-Net深入理解(从R-CNN到SPP-Net)
一. 导论 SPP-Net是何凯明在基于R-CNN的基础上提出来的目标检测模型,使用SPP-Net可以大幅度提升目标检测的速度,检测同样一张图片当中的所有目标,SPP-Net所花费的时间仅仅是RCNN ...
- 电力规约DL/T 654 2007多功能电表通信协议 调试工具
DL/T 654 2007多功能电表通信协议 调试工具 最近调试DL/T654 2007电力规约,在网上找到一个比较好用的工具,分享给大家,希望对大家有帮助. CSDN需要积分,我传百度网盘了, 内含 ...
- 【av68676164(p51-p53)】虚拟内存管理(2)
虚拟内存管理(2) 7.3.4 缺页终端 分级存储体系 cache+内存+辅存 页表扩充-带中断位的页表 页号 页框号 中断位I 辅存地址 访问位 修改位 1 1 0 0 0 1 中断位I-标志该页是 ...
- OGG复制进程延迟高,优化方法一(使用索引)
日常运维过程中,可能发现OGG同步进程延迟很高: 本篇介绍其中的一种方式. OGG复制进程,或者说同步进程及通过解析ogg trail文件,输出dml语句,在目标库执行dml操作,那么延迟高可能性其一 ...