牛客网数据库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 ...
随机推荐
- Django学习路7_注册app到能够在页面上显示app网页内容
在根目录下创建一个 app3 app3 是新 app 的名字 创建一个 urls.py 在 urls.py 中添加 urlpatterns 列表 容纳需要显示在页面上的函数 from django.c ...
- PHP EOF(heredoc) 使用说明
PHP EOF(heredoc) 使用说明 PHP EOF(heredoc)是一种在命令行shell(如sh.csh.ksh.bash.PowerShell和zsh)和程序语言(像Perl.PHP.P ...
- Python os.readlink() 方法
概述 os.readlink() 方法用于返回软链接所指向的文件.可能返回绝对或相对路径.高佣联盟 www.cgewang.com 在Unix中有效 语法 readlink()方法语法格式如下: os ...
- PHP in_array() 函数
实例 在数组中搜索值 "Runoob" ,并输出一些文本: <?php $sites = array("Google", "Runoob&quo ...
- PHP cal_days_in_month() 函数
------------恢复内容开始------------ 实例 针对指定的年份和历法,获取一个月中的天数: <?php$d=cal_days_in_month(CAL_GREGORIAN,1 ...
- PHP strtoupper() 函数
实例 把所有字符转换为大写: <?php高佣联盟 www.cgewang.comecho strtoupper("Hello WORLD!");?> 定义和用法 str ...
- PDOStatement::rowCount
PDOStatement::rowCount — 返回受上一个 SQL 语句影响的行数(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)高佣联盟 www.cgewang ...
- K近邻算法(二)
def KNN_classify(k, X_train, y_train, x): assert 1 <= k <= X_train.shape[0], "k must be v ...
- Hibernate 映射
在使用单纯hibernate文件映射时,项目应包含以下文件: hibernate.cfg.xml 放在src/或根目录下 1 <?xml version='1.0' encoding='utf ...
- Android Studio简单的登陆界面
在app->src->main->java里面找到MainActivity.java,将鼠标放到activity-main上按住Ctrl后单击跳转到activity-main.xml ...