牛客网—数据库SQL实战(2)

牛客网SQL题目解析(答案+解析+理解) 本文记录了牛客网sql全部题目的答案与难题解析,部分题目包含多种解法,并且涵盖了开窗函数等各种语法点的理解 标题中高亮的题目,是易错题 牛客网刷题链接:牛客网sql在线练习 参考教程资源: ​ mysql教程1 ​ mysql教程2 1.where+子查询 select * from employees order by hire_date desc limit 0,1; select * from employees where hire_date = . 阅读详情

11. 获取所有员工当前的manager

获取所有员工当前的manager,如果当前的manager是自己的话结果不显示,当前表示to_date='9999-01-01'。
结果第一列给出当前员工的emp_no,第二列给出其manager对应的manager_no。
CREATE TABLE `dept_emp` (
`emp_no` int(11) NOT NULL,
`dept_no` char(4) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`dept_no`));
CREATE TABLE `dept_manager` (
`dept_no` char(4) NOT NULL,
`emp_no` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`dept_no`));

输入描述:

无

输出描述:

emp_nomanager_no
1000110002
1000310004
1000910010
select d1.emp_no, d2.emp_no as manager_no
from dept_emp as d1, dept_manager as d2
where d1.dept_no = d2.dept_no
    and d1.emp_no <> d2.emp_no
    and d1.to_date = '9999-01-01'
    and d2.to_date = '9999-01-01'

12. 获取所有部门中当前员工薪水最高的相关信息

题目描述

获取所有部门中当前员工薪水最高的相关信息,给出dept_no, emp_no以及其对应的salary
CREATE TABLE `dept_emp` (
`emp_no` int(11) NOT NULL,
`dept_no` char(4) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`dept_no`));
CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));

输入描述:

无

输出描述:

dept_noemp_nosalary
d0011000188958
d0021000643311
d0031000594692
d0041000474057
d0051000788070
d0061000995409
select d.dept_no, d.emp_no, max(s.salary) as salary
from dept_emp as d, salaries as s
where d.emp_no = s.emp_no
    and d.to_date = '9999-01-01'
    and s.to_date = '9999-01-01'
group by d.dept_no

13. 从titles表获取按照title进行分组

题目描述

从titles表获取按照title进行分组,每组个数大于等于2,给出title以及对应的数目t。
CREATE TABLE IF NOT EXISTS "titles" (
`emp_no` int(11) NOT NULL,
`title` varchar(50) NOT NULL,
`from_date` date NOT NULL,
`to_date` date DEFAULT NULL);

输入描述:

无

输出描述:

titlet
Assistant Engineer2
Engineer4
省略省略
Staff3
select title, count(title) as t
from titles
group by title
having t >= 2

14. 从titles表获取按照title进行分组,注意对于重复的emp_no进行忽略

题目描述

从titles表获取按照title进行分组,每组个数大于等于2,给出title以及对应的数目t。
注意对于重复的emp_no进行忽略。
CREATE TABLE IF NOT EXISTS "titles" (
`emp_no` int(11) NOT NULL,
`title` varchar(50) NOT NULL,
`from_date` date NOT NULL,
`to_date` date DEFAULT NULL);

输入描述:

无

输出描述:

titlet
Assistant Engineer2
Engineer3
省略省略
Staff3
select title, count(distinct emp_no) as t
from titles
group by title
having t >= 2

15. 查找employees表

题目描述

查找employees表所有emp_no为奇数,且last_name不为Mary的员工信息,并按照hire_date逆序排列
CREATE TABLE `employees` (
`emp_no` int(11) NOT NULL,
`birth_date` date NOT NULL,
`first_name` varchar(14) NOT NULL,
`last_name` varchar(16) NOT NULL,
`gender` char(1) NOT NULL,
`hire_date` date NOT NULL,
PRIMARY KEY (`emp_no`));

输入描述:

无

输出描述:

emp_nobirth_datefirst_namelast_namegenderhire_date
100111953-11-07MarySluisF1990-01-22
100051955-01-21KyoichiMaliniakM1989-09-12
100071957-05-23TzvetanZielinskiF1989-02-10
100031959-12-03PartoBamfordM1986-08-28
100011953-09-02GeorgiFacelloM1986-06-26
100091952-04-19SumantPeacF1985-02-18
select emp_no, birth_date, first_name, last_name, gender, hire_date
from employees
where emp_no % 2 = 1
    and last_name <> 'Mary'
order by hire_date desc

16. 统计出当前各个title类型对应的员工当前薪水对应的平均工资

题目描述

统计出当前各个title类型对应的员工当前薪水对应的平均工资。结果给出title以及平均工资avg。
CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));
CREATE TABLE IF NOT EXISTS "titles" (
`emp_no` int(11) NOT NULL,
`title` varchar(50) NOT NULL,
`from_date` date NOT NULL,
`to_date` date DEFAULT NULL);

输入描述:

无

输出描述:

titleavg
Engineer94409.0
Senior Engineer69009.2
Senior Staff91381.0
Staff72527.0
select t.title, avg(s.salary) as avg
from titles as t, salaries as s
where t.emp_no = s.emp_no
    and t.to_date = '9999-01-01'
    and s.to_date = '9999-01-01'
group by t.title

17. 获取当前薪水第二多的员工的emp_no以及其对应的薪水salary

题目描述

获取当前(to_date='9999-01-01')薪水第二多的员工的emp_no以及其对应的薪水salary
CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));

输入描述:

无

输出描述:

emp_nosalary
1000994409
select emp_no, salary
from salaries
order by salary desc limit 1,1

18. 查找当前薪水排名第二多的员工编号emp_no以及其对应的薪水salary,不准使用order_by

题目描述

查找当前薪水(to_date='9999-01-01')排名第二多的员工编号emp_no、薪水salary、last_name以及first_name,不准使用order by
CREATE TABLE `employees` (
`emp_no` int(11) NOT NULL,
`birth_date` date NOT NULL,
`first_name` varchar(14) NOT NULL,
`last_name` varchar(16) NOT NULL,
`gender` char(1) NOT NULL,
`hire_date` date NOT NULL,
PRIMARY KEY (`emp_no`));
CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));

输入描述:

无

输出描述:

emp_nosalarylast_namefirst_name
1000994409PeacSumant
select e.emp_no, s.salary, e.last_name, e.first_name
from employees as e, salaries as s
where e.emp_no = s.emp_no
    and s.to_date = '9999-01-01'
    and s.salary = (select max(salary) 
              from salaries
              where to_date = "9999-01-01"
                  and salary != (select max(salary) 
                             from salaries
                             where to_date = "9999-01-01"))

19. 查找所有员工的last_name和first_name以及对应的dept_name

题目描述

查找所有员工的last_name和first_name以及对应的dept_name,也包括暂时没有分配部门的员工
CREATE TABLE `departments` (
`dept_no` char(4) NOT NULL,
`dept_name` varchar(40) NOT NULL,
PRIMARY KEY (`dept_no`));
CREATE TABLE `dept_emp` (
`emp_no` int(11) NOT NULL,
`dept_no` char(4) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`dept_no`));
CREATE TABLE `employees` (
`emp_no` int(11) NOT NULL,
`birth_date` date NOT NULL,
`first_name` varchar(14) NOT NULL,
`last_name` varchar(16) NOT NULL,
`gender` char(1) NOT NULL,
`hire_date` date NOT NULL,
PRIMARY KEY (`emp_no`));

输入描述:

无

输出描述:

last_namefirst_namedept_name
FacelloGeorgiMarketing
省略省略省略
SluisMaryNULL
select e.last_name, e.first_name, d2.dept_name
from employees as e left join dept_emp as d1
    on e.emp_no = d1.emp_no left join departments as d2
        on d1.dept_no = d2.dept_no

20. 查找员工编号emp_no为10001其自入职以来的薪水salary涨幅值growth

题目描述

查找员工编号emp_no为10001其自入职以来的薪水salary涨幅值growth
CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));

输入描述:

无

输出描述:

growth
28841
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

 

牛客网之SQL刷题练习——一个实用的网站 推荐一个免费在线刷题神器,希望我们都能早日拿到互联网大厂入门券! 阅读详情

相关推荐

牛客网:数据库SQL实战题库笔记

牛客网原题地址 1. 查找最晚入职员工的所有信息 select * from employees order by hire_date desc limit 0,1 方法1:若最晚入职员工只有1人,则按入职时间倒序排列,排在第一的就是目标人员。 select * from employees where hire_date=(select max(hire_date) from employ...

weixin_44361892的博客 1119

【牛客网SQL篇】SQL必知必会

sql-teach-yourself 01 检索数据 SQL1 从 Customers 表中检索所有的 ID 题目: 编写 SQL 语句,从 Customers 表中检索所有的cust_id SELECT cust_id FROM Customers; SQL2 检索并列出已订购产品的清单 题目: 编写SQL 语句,检索并列出所有已订购商品(prod_id)的去重后的清单。 SELECT DISTINCT prod_id FROM OrderItems; SQL3 检索所

随缘博客 1819

【SQL实战(三)】【牛客网sql实战】

本章主要内容:牛客网sql实战

LinGavinQ 439

SQL编程题练习题(基础)

SQL1 查询多列 题目:现在运营同学想要用户的设备id对应的年龄、性别和学校的数据,请你取出相应数据 select device_id, gender,age,university from user_profile SQL2 查询所有列 题目:现在运营想要查看用户信息表中所有的数据,请你取出相应结果 select * from user_profile SQL3 查询结果去重 题目:现在运营需要查看用户来自于哪些学校,请从用户信息表中取出学校的去重数据。 select distinct u

数据飓风 4422

【高级-RAG-优化方法】

本文介绍了两种优化RAG(检索增强生成)系统的高级方法。第一部分介绍KnowFlow项目,它采用父子分块技术,将文档分为父分块(800-1500字符)和子分块(200-400字符),通过精确匹配子分块再返回父分块内容来保证搜索精确性和上下文完整性。第二部分探讨Milvus的多种增强技术,包括查询增强(如假设问题生成、回溯提示)、索引增强(自动合并块、分层索引)、检索器增强(句子窗口检索、元数据过滤)、生成器增强(提示压缩、块排序)以及管道增强(自我反省、代理查询路由)。这些方法共同提升了RAG系统的检索效率

weixin_48585108的博客 960

Unity游戏开发实战:用Flow Field实现RTS百人军团流畅寻路(附完整代码)

本文深入探讨了在Unity中利用流场寻路技术解决RTS游戏大规模单位移动性能瓶颈的实战方案。通过解析从Dijkstra算法生成成本场、积分场到最终向量场的核心原理,并结合分块、缓存及与DOTS/ECS架构集成的优化策略,实现了百人军团的流畅群体寻路。文章提供了完整的代码示例,助力开发者构建高性能的RTS寻路系统。

weixin_28363123的博客 587

【牛客网SQL篇】非技术快速入门

sql-quick-study 01 基础查询 概念:基础查询 SQL1 查询多列 题目: 现在运营同学想要用户的设备 id 对应的性别、年龄和学校的数据,请你取出相应数据 语法: select 要显示的列名 from 表名; SELECT 关键字后给出多个列名,列名之间必须以逗号分隔 SELECT device_id, gender, age, university FROM user_profile; SQL2 查询所有列 题目: 现在运营想要查看用户信息表中所有的数据,请你取

随缘博客 1133

ZYNQ出现问题及解决办法汇总(一直更新)

问题目录使用软件及开发板版本一,vitis在build project时卡住。二,Could not find FPGA device on the board for connection 'Local'三,FPGA configuration failed:DONE PIN is not high四,Could not find ARM device on the board for connection 'Local' 使用软件及开发板版本 开发板:MZ7XA-7020 软件:vitis2020.2(

qq_45057368的博客 1万+

牛客网sql题目总结(一)

select * from employees where hire_date = ( select max(hire_date) from employees ) 思路:因为说是最xxx,所以可以直接用聚合函数max,最晚入职,就是hire_date,所以可以用嵌套select语句,先找到最晚入职员工的日期,再用日期作为where条件,查询到所有信息 select * from empl...

0117 1444

【液晶专题】从外挂到In-Cell/ On-Cell/ OGS再也不会傻傻分不清楚了

触控技术经历了从外挂式到内嵌式的革新,主要方案包括外挂式(Out-Cell)、OGS、On-Cell和In-Cell。

一点硬件 1252

CentOS7 编译升级GCC至9.3.0

1)下载GCC9.2.0源码并解压 从GCC官方FTP下载地址可以看到GCC最新版本为9.3.0。由于官网下载速度慢,实际上用清华大学的镜像站进行下载,代码如下: wget -c /opt/tmp/ https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz #考虑到安装失败的可能性,创建一个临时文件夹来安装GCC...

haha123486的博客 1万+

牛客网-数据库SQL实战2

题目描述 查找最晚入职员工的所有信息,为了减轻入门难度,目前所有的数据里员工入职的日期都不是同一天(sqlite里面的注释为–,mysql为comment) CREATE TABLE `employees` ( `emp_no` int(11) NOT NULL, -- '员工编号' `birth_date` date NOT NULL, `first_name` varchar(14) NOT NULL, `last_name` varchar(16) NOT NULL, `gender` char(.

ECIFICS的博客 1229

UE5 StateTree实战:用分层状态机重构你的AI行为逻辑(附蓝图配置避坑点)

本文详细介绍了UE5中StateTree分层状态机的实战应用,帮助开发者重构AI行为逻辑。通过核心概念解析、迁移策略、高级技巧和避坑指南,展示了StateTree在灵活性、可维护性和并行处理方面的优势,特别适合复杂AI行为的开发与优化。

weixin_42558257的博客 248

牛客网数据库SQL实战55—— 分页查询employees表,每5行一页,返回第2页的数据

牛客网数据库SQL实战55—— 分页查询employees表,每5行一页,返回第2页的数据 题目描述 分页查询employees表,每5行一页,返回第2页的数据 CREATE TABLE `employees` ( `emp_no` int(11) NOT NULL, `birth_date` date NOT NULL, `first_name` varchar(14) NOT NULL, `l...

sunbocong的博客 722

petalinux2022.2启动文件编译配置

petalinux2021之前的版本里,导入目录components/yocto/下的“environment-setup-aarch64-xilinx-linux” 和 “layers/core/oe-init-build-env”的环境,能使用Yocto的devtool工具。(加入下面内容,先petalinux-build下载完成后才能有源码)制作 BOOT.BIN 启动文件:petalinux-package --boot --fsbl --fpga --u-boot --force。

wangjie36的博客 1388

CANoe制作网关实现CAN(FD)报文故障注入(报文长度/timeout/信号错误/E2E)2

CANoe制作网关实现CAN报文故障注入(报文长度/timeout/信号错误/E2E) 2.新建CANoe工程 3.透传功能 4.故障注入panel面板 5.CAPL代码 5.1故障注入开始、停止、定时 5.2DLC故障注入 5.3 Timeout故障注入 5.4 信号故障注入

天赐好车的博客 3674

牛客网数据库SQL实战59—— 获取有奖金的员工相关信息。

牛客网数据库SQL实战59—— 获取有奖金的员工相关信息。 题目描述 获取有奖金的员工相关信息。 CREATE TABLE `employees` ( `emp_no` int(11) NOT NULL, `birth_date` date NOT NULL, `first_name` varchar(14) NOT NULL, `last_name` varchar(16) NOT NULL, ...

sunbocong的博客 1017

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

牛客网:数据库sql实战

1、查找最晚入职员工的所有信息 select * from employees where hire_date = (select max(hire_date) from employees);2、查找入职员工时间排名倒数第三的员工所有 select * from employees where hire_date = (select hire_date from employees orde

destiny_python的博客 5005

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

牛客网数据库SQL 实战答案解析

????牛客网数据库SQL 实战答案解析 ????目录 文章目录????牛客网数据库SQL 实战答案解析????目录????OJ刷题 地址题解????目录????急速零基础入门数据库**????基本概念****????基本SQL语句****????基本常用函数**????联系方式 ????OJ刷题 地址 ????数据库SQL 实战 ????题解仓库 题解????目录 oj平台为????牛客网在线评测平台 语法规范:????SQLite3.7.9 题解参考牛客网->试题广场->讨论...

韩旭051的博客 1418

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

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

第11题获取所有员工当前的manager,如果当前的manager是自己的话结果不显示,当前表示to_date='9999-01-01'。 select de.emp_no, dm.emp_no as manager_no from dept_emp de inner join dept_manager dm on de.dept_no=dm.dept_no where d...

水木青枫的专栏 448

牛客网SQL实战二刷 | 完整解析 -- 目录索引

「牛客网SQL实战二刷」是个系列学习笔记博文,Day1 - Day10,每天解析6道SQL题目~ 初衷是留给自己一份笔记,也希望能分享给「一起学习SQL的你」:)

是圣洁呀✨ 3379

sql not exists用法_牛客网数据库SQL实战详细剖析(5160)(更新完结)

文章来源:大数据肌肉猿作者:无精疯这是一个系列文章,总共61题,分6期,有答案以及解题思路,并附上解题的一个思考过程。具体题目可参考牛客网的SQL实战模块:https://www.nowcoder.com/ta/sql?page=0一、牛客网数据库SQL实战详细剖析(1-10)二、牛客网数据库SQL实战详细剖析(11-20)三、牛客网数据库SQL实战详细剖析(21-30)四、牛客网数据库...

weixin_39598094的博客 247

牛客网数据库SQL实战34—— 批量插入数据

牛客网数据库SQL实战34—— 批量插入数据 题目描述 对于表actor批量插入如下数据 CREATE TABLE IF NOT EXISTS actor ( actor_id smallint(5) NOT NULL PRIMARY KEY, first_name varchar(45) NOT NULL, last_name varchar(45) NOT NULL, last_update ...

sunbocong的博客 652

牛客网获取输入rowinput_练习SQL利器,牛客网SQL实战题库

牛客网SQL实战网址:https://www.nowcoder.com/ta/sql持续更新——记录自己在牛客网SQL的做题过程更新进度:61题,2019-4-3,更完了1.查找最晚入职员工的所有信息应该考虑的问题:①最晚入职的当天未必就一个人,也许有多人,使用排序并限制得只能取得指定数量的结果SELECT 注:日期最大的就是最晚的,日期较早就是较小。2.查找入职员工时间排名倒数第三的员工所有信息...

weixin_39596090的博客 506

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

第21题查找所有员工自入职以来的薪水涨幅情况,给出员工编号emp_no以及其对应的薪水涨幅growth,并按照growth进行升序 SELECT e.emp_no, (s1.salary-s2.salary) AS growth FROM employees e INNER JOIN salaries s1 ON e.emp_no=s1.emp_no AND s1.to_date='9999...

水木青枫的专栏 358

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

31.获取select * from employees对应的执行计划 EXPLAIN SELECT * FROM employees ; 解析:explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句,分析查询语句或者表结构的性能瓶颈。 32.将employees表的所有员工的last_name和first_nam...

水木青枫的专栏 362
上一篇: 牛客网—数据库SQL实战(1)
下一篇: LeetCode 1. 两数之和
ZWANG987
博客等级 码龄11年 4粉丝 109原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值