牛客网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题)的更多相关文章

  1. 牛客网数据库SQL实战解析(51-61题)

    牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...

  2. 牛客网数据库SQL实战解析(41-50题)

    牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...

  3. 牛客网数据库SQL实战解析(31-40题)

    牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...

  4. 牛客网数据库SQL实战解析(21-30题)

    牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...

  5. 牛客网数据库SQL实战解析(11-20题)

    牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...

  6. 牛客网数据库SQL实战1-查找最晚入职员工的所有信息

    题目描述 查找最晚入职员工的所有信息CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`fi ...

  7. 牛客网数据库SQL实战(此处只有答案,没有表内容)

    1.查找最晚入职员工的所有信息   select * from employees order by hire_date desc limit 1; --limit n表示输出前n条数据,limit ...

  8. 牛客网数据库SQL实战(21-25)

    21.查找所有员工自入职以来的薪水涨幅情况,给出员工编号emp_no以及其对应的薪水涨幅growth,并按照growth进行升序CREATE TABLE `employees` (`emp_no` i ...

  9. 牛客网数据库SQL实战(16-20)

    16.统计出当前各个title类型对应的员工当前薪水对应的平均工资.结果给出title以及平均工资avg.CREATE TABLE `salaries` (`emp_no` int(11) NOT N ...

随机推荐

  1. Day02_Vue.js与Webpack

    Vue.js与Webpack 1 vue.js介绍 1.vue.js是什么? Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设 ...

  2. IPython magic命令

  3. PHP array_multisort() 函数

    实例 返回一个升序排列的数组: <?php$a=array("Dog","Cat","Horse","Bear", ...

  4. PHP vfprintf() 函数

    实例 把一些文本写入到名为 "test.txt" 的文本文件: <?php高佣联盟 www.cgewang.com$number = 9;$str = "Beiji ...

  5. 一些Tips

    https://www.cnblogs.com/yeungchie/ 1. 快捷键e,有个EnableDimming选项,勾选后只会高亮你所选中的器件连线等等,其他器件亮度会下降,和mark不同,有利 ...

  6. Netty(一):server启动流程解析

    netty作为一个被广泛应用的通信框架,有必要我们多了解一点. 实际上netty的几个重要的技术亮点: 1. reactor的线程模型; 2. 安全有效的nio非阻塞io模型应用; 3. pipeli ...

  7. 【HNOI2010】弹飞绵羊 题解(分块)

    前言:其实这个题是用LCT做的,但蒟蒻因为太弱了,只会分块QAQ. ----------------------------- 题目链接 题目大意:给定$n$个装置,每个装置有弹力系数$k_i$,即在 ...

  8. 银弹谷零代码开发V百科|使用技巧:OMG!这些时间日期函数太好用了吧,盘它

    银弹谷零代码开发V百科|使用技巧:OMG!这些时间日期函数太好用了吧,盘它 Hello~everybody!小V又来咯!这次小V给大家带来的是零代码开发V平台常用的时间日期函数.小V知道我们平时常常会 ...

  9. 属性集 Properties

    5.1 概述 java.util.Properties 继承于 Hashtable ,来表示一个持久的属性集.它使用键值结构存储数据,每个键及其对应值都是一个字符串.该类也被许多Java类使用,比如获 ...

  10. Android VideoView未解决,动态读取权限、BottomNavigationView的用法

    昨天想写的,但是因为Video的毛病,是真找不出为啥了.百度也没用,学长也不清楚. 百度了那么久,大概得出结论,电脑的视频是不能用它来播放的... ..经过两天的奋斗,我居然搞定了,我的视频终于出来了 ...