SQL25 获取员工其当前的薪水比其manager当前薪水还高的相关信息

【数据库SQL实战】题目21~30答案全解析 21. 查找所有员工自入职以来的薪水涨幅情况(多表) 查找所有员工自入职以来的薪水涨幅情况,给出员工编号emp_no以及其对应的薪水涨幅growth,并按照growth进行升序 CREATE TABLE `employees` ( `emp_no` int(11) NOT NULL, `birth_date` date NOT NULL, `first_name` varchar(14) N... 阅读详情


纳入错题本,JOIN的深刻理解。

1. 题目

  • 题目来源:SQL25 获取员工其当前的薪水比其manager当前薪水还高的相关信息

  • 题目描述
    获取员工其当前的薪水比其manager当前薪水还高的相关信息,
    第一列给出员工的emp_no,
    第二列给出其manager的manager_no,
    第三列给出该员工当前的薪水emp_salary,
    第四列给该员工对应的manager当前的薪水manager_salary

  • 表格
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

  • 所需结果
    在这里插入图片描述

2. 题解

如果没有理清思路,这题就会有点难度。
一开始怎么也没想到用 (A-B)-(B-C)的连方式(-指JOIN),即没有一张表是现成的,都需要自己先构筑好,最后再使用条件进行连接。
(最后再去题目所需要的结果,换个顺序不就是:员工-员工工资-主管-主管工资吗?最后的连接条件是部门相同)

# right
SELECT t1.emp_no, t2.manager_no, t1.emp_salary, t2.manager_salary
FROM (SELECT de.emp_no emp_no, s1.salary emp_salary, de.dept_no
      FROM dept_emp de 
      JOIN salaries s1 
      ON de.emp_no = s1.emp_no
      WHERE de.to_date = '9999=01-01'
            AND s1.to_date = '9999=01-01'
            AND de.emp_no NOT IN (SELECT emp_no FROM dept_manager)
        ) t1
      JOIN (SELECT dm.emp_no manager_no, s2.salary manager_salary, dm.dept_no
            FROM dept_manager dm 
            JOIN salaries s2
            ON dm.emp_no = s2.emp_no 
            WHERE s2.to_date = '9999=01-01'
                  AND dm.to_date = '9999-01-01'
            ) t2
      ON t1.dept_no = t2.dept_no
WHERE t2.manager_salary < t1.emp_salary

反思:JOIN:一表多用构造多个新字段 + 圆括号的使用

做了这题才发现对JOIN的理解还不够深,一开始脑海里一直很乱,甚至还想到`GROUP BY dept。

回过头看,其实就是比较不在同一张表中的内容。

一件奇葩的事情是,如下的代码报错:

# wrong
SELECT t.emp_no, t.manager_no, t.emp_salary, t.manager_salary
FROM ((SELECT de.emp_no emp_no, s1.salary emp_salary, de.dept_no
      FROM dept_emp de 
      JOIN salaries s1 
      ON de.emp_no = s1.emp_no
      WHERE de.to_date = '9999=01-01'
            AND s1.to_date = '9999=01-01'
            AND de.emp_no NOT IN (SELECT emp_no FROM dept_manager)
      ) t1 
      JOIN (SELECT dm.emp_no manager_no, s2.salary manager_salary, dm.dept_no
            FROM dept_manager dm 
            JOIN salaries s2
            ON dm.emp_no = s2.emp_no 
            WHERE s2.to_date = '9999=01-01'
                  AND dm.to_date = '9999-01-01'
            ) t2
      ON t1.dept_no = t2.dept_no
      ) t
WHERE t.manager_salary < t.emp_salary 

SQL中圆括号真的不能随便使用啊?

SQL每日一题【Day1】——牛客25.获取员工其当前的薪水比其manager当前薪水还高的相关信息 类型:join连接后where筛选 思路:01-员工当前薪资;02-经理当前薪资;03-两表根据部门内连接,where筛选出员工薪资比经理薪资高的情况。 -- 部门员工当前薪资表a -- 经理当前薪资表b select a.emp_no,b.manager_no,a.emp_salary,b.manager_salary from( select de.*,s.salary as emp_salary from dept_emp de join salaries s on de.. 阅读详情

相关推荐

牛客-SQL篇-全部题目-SQL219获取员工其当前的薪水比其manager当前薪水还高的相关信息

第四列给该员工对应的manager当前的薪水manager_salary。获取员工其当前的薪水比其manager当前薪水还高的相关信息,第二列给出其manager的manager_no,第三列给出该员工当前的薪水emp_salary,第一列给出员工的emp_no,

SunshineLu2019的博客 939

获取员工当前的薪水比其manager当前薪水还高的相关信息

康龙化成【岗位】 生物科学,临床,大分子,CMC,分析,合成,职能运营【一键内推】 https://app.mokahr.com/m/campus-recrui。最近沉浸在喜悦中,都快。不知道咋选了华为14a,数通北京,今天刚开的,听说工作满一年可以内转到合肥(本人比较想去合肥)荣耀,应该是15级,在南京,薪资和华为一样,但是南京要比北京生活成。感觉天塌了,一直都有保温,说耐心等,肯。金山办公春招提前批已开启,目前有大量岗位,薪资硕士17k-23k*14薪,门槛较低,我是今年入职的,总体感觉还可以,不卷。

Buoluochuixue的博客 764

角谱迭代与傅里叶变换迭代算法(GS)的原理及其实例演示分析

角谱迭代与傅里叶变换迭代算法(GS)的原理及其实例演示分析 目前,迭代法和强度传输方程(TIE)法是两类典型的非干涉相位检索技术(Phase Retrieval,被称为相位恢复、相位检索、相位反演法、相位复原等)。迭代法中的经典算法是Gerchberg-Saxton(GS),随后,出现了包括错误减少算法(ER)、混合输入输出法(HIO)、梯度搜索算法、角谱迭代算法等改进算法。...

简单光学 2万+

hive-DML-查询-join语句

hive支持以下连接表的语句 join_table: table_reference [INNER] JOIN table_factor [join_condition] | table_reference {LEFT|RIGHT|FULL} [OUTER] JOIN table_reference join_condition | table_reference LEFT SEMI JOIN table_reference join_condition | table_referenc

m0_46698362的博客 195

迪文DGUSII串口屏中文显示实战:手把手教你制作16x16点阵字库

本文提供了一份迪文DGUSII串口屏16x16点阵中文字库制作的完整实战指南。从显示原理、字体选择与参数设置,到使用FontLib Make工具生成字库文件,再到部署、调用及存储空间优化,手把手教你解决中文显示难题,确保界面文字既美观又稳定。

weixin_29190573的博客 156

告别环境报错:Qt Creator里配置Android SDK/NDK/JDK路径的完整避坑指南

本文详细解析了在Qt Creator中配置Android SDK/NDK/JDK路径的完整避坑指南,深入探讨了路径检测的内部机制、构建套件配置的隐藏逻辑以及项目级与全局配置的优先级。通过实际案例和高级排查技巧,帮助开发者解决常见的环境报错问题,提升Qt安卓开发效率。

weixin_42548829的博客 238

获取员工其当前的薪水比其manager当前薪水还高的相关信息

获取员工其当前的薪水比其manager当前薪水还高的相关信息,当前表示to_date=‘9999-01-01’, 结果第一列给出员工的emp_no, 第二列给出其manager的manager_no, 第三列给出该员工当前的薪水emp_salary, 第四列给该员工对应的manager当前的薪水manager_salary CREATE TABLE dept_emp ( emp_no int(11) NOT NULL, dept_no char(4) NOT NULL, from_date date NOT

qq_45577911的博客 294

【Unity游戏开发】SDK接入与集成——小白入门篇

一、简介   通常一款游戏开发到后期,一般都会涉及到第三方SDK的接入与集成,对于不熟悉SDK接入的同学来说,接SDK每次都是云里雾里,而熟悉SDK接入的同学又觉得不断地重复做接入SDK工作这样没有成就感,太尼玛无聊了(Android渠道一弄就十几个,直接吐血)。其实通常情况下接入SDK都是很简单的一个过程,本系列博客就让马三和大家从小白开始,从零基础开始学习如何接入SDK以及一些常见的SDK的...

weixin_34195142的博客 5763

牛客网数据库SQL实战25—— 获取员工其当前的薪水比其manager当前薪水还高的相关信息

牛客网数据库SQL实战25—— 获取员工其当前的薪水比其manager当前薪水还高的相关信息 题目描述 获取员工其当前的薪水比其manager当前薪水还高的相关信息,当前表示to_date=‘9999-01-01’, 结果第一列给出员工的emp_no, 第二列给出其manager的manager_no, 第三列给出该员工当前的薪水emp_salary, 第四列给该员工对应的manager当前的薪水...

sunbocong的博客 666

毕设-YOLOv8-OBB 实现自有数据集缺陷旋转检测全过程记录

这次项目让我深入理解了 YOLOv8-OBB 的原理和使用流程。步骤内容工具数据标注制作倾斜缺陷样本格式转换从 HBB 转换为 OBB模型训练使用 Ultralytics YOLOv8 OBBCLI 命令模型测试推理与结果可视化通过 OBB 模型,我的缺陷检测系统获得了更高的精度和鲁棒性。未来我打算继续优化数据增强方式,比如引入随机旋转、仿射变换等,让模型更适应不同角度的样本。

FJN110的博客 446

FPGA工程师面试试题集锦11~20

时钟抖动是指芯片的某一个给定点上时钟周期发生暂时性变化,也就是说时钟周期在不同的周期上可能加长或缩短。它是一个平均值为0的平均变量。

FPGA/MATLAB学习教程/源码/项目合作开发 678

SQL-25 获取员工其当前的薪水比其manager当前薪水还高的相关信息

题目描述 获取员工其当前的薪水比其manager当前薪水还高的相关信息,当前表示to_date='9999-01-01',结果第一列给出员工的emp_no,第二列给出其manager的manager_no,第三列给出该员工当前的薪水emp_salary,第四列给该员工对应的manager当前的薪水manager_salaryCREATE TABLE `dept_emp` (`emp_no` ...

weixin_34072637的博客 148

从数据到行动:客服运营必分析的8大核心维度

服务运营正从被动响应升级为数据驱动型战略体系。客服中心的海量交互数据能精准反映服务效能、客户体验及运营短板,关键在于实现数据的可视化与可操作化。本文系统剖析了八类核心数据指标:1)客户行为数据(CSAT/NPS/投诉内容);2)通话效率指标(AHT/接通率);3)服务质量(质检体系/情绪识别);4)坐席绩效(FCR/客户评价);5)流程与知识库(转接率/工单时效);6)渠道流量分析;7)异常预警机制;8)成本收益模型。通过构建多维数据分析体系,企业可在客户全生命周期管理中实现服务升级、风险防控与资源

2202_75469062的博客 1400

题解-牛客网-SQL-(SQL25) 获取员工其当前的薪水比其manager当前薪水还高的相关信息

文章目录1. 题目描述1.1 输入1.2 输出2. 题目分析及解答2.1 题目分析2.2 详细解答 1. 题目描述 1.1 输入 有一个部门关系表dept_emp简况如下: 有一个部门经理表dept_manager简况如下: 有一个薪水表salaries简况如下: 1.2 输出 获取员工其当前的薪水比其manager当前薪水还高的相关信息, 第一列给出员工的emp_no, 第二列给出其manager的manager_no, 第三列给出该员工当前的薪水emp_salary, 第四列给该员工对应的mana

清溪醉客的博客 244

15、分布式查询处理详解

本博文深入探讨了分布式环境下的查询处理与优化技术。从查询处理的基本概念出发,分析了在分布式系统中执行查询所面临的额外挑战,并通过实例比较了不同的执行策略。文章详细介绍了查询优化的组成要素,包括搜索空间、成本模型和搜索策略,同时涵盖了查询处理的多个层次以及数据本地化的核心方法。此外,还讨论了连接排序优化、分布式成本模型以及多种查询优化方法,如静态优化、动态优化和混合优化。最后,提出了自适应查询处理的概念,旨在提高分布式查询的灵活性和效率。通过综合应用这些技术,可以有效提升分布式数据库的查询性能,降低通信和计算

gan8painter的博客 73

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

SQL实战25.获取员工其当前的薪水比其manager当前薪水还高的相关信息

题目 解答 思路:创建两张表,一张员工表,一张经理表,进行联结 --员工表 (select de.emp_no,de.dept_no,s.salary as emp_salary from dept_emp as de left join salaries as s on de.emp_no=s.emp_no where de.emp_no not in (select emp_no from dept_manager) and s.to_date='9999-01-01') as a --经理表

m0_48005088的博客 222

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

(困难)SQL练习25:获取员工其当前的薪水比其manager当前薪水还高的相关信息

SQL练习25:获取员工其当前的薪水比其manager当前薪水还高的相关信息 题目链接:牛客网 题目描述 获取员工其当前的薪水比其manager当前薪水还高的相关信息,当前表示to_date='9999-01-01',结果第一列给出员工的emp_no,第二列给出其manager的manager_no,第三列给出该员工当前的薪水emp_salary,第四列给该员工对应的manager当前的薪水manager_salary。 CREATE TABLE `dept_emp` ( `emp_no` int(11)

向日葵的专属太阳 473

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

牛客网刷题笔记-SQL 25 获取员工其当前的薪水比其manager当前薪水还高的相关信息

SQL 25 获取员工其当前的薪水比其manager当前薪水还高的相关信息 有一个,部门关系表dept_emp简况如下: 有一个部门经理表dept_manager简况如下: 有一个薪水表salaries简况如下: 获取员工其当前的薪水比其manager当前薪水还高的相关信息, 第一列给出员工的emp_no, 第二列给出其manager的manager_no, 第三列给出该员工当前的薪水emp_salary, 第四列给该员工对应的manager当前的薪水manager_salary 以上例子输出如下:

qq_39211004的博客 150

数据库SQL实践25:获取员工其当前的薪水比其manager当前薪水还高的相关信息

思想: 题目要求获取员工其当前的薪水比其manager当前薪水还高的相关信息,当前表示to_date='9999-01-01', 结果第一列给出员工的emp_no, 第二列给出其manager的manager_no, 第三列给出该员工当前的薪水emp_salary, 第四列给该员工对应的manager当前的薪水manager_salary 首先通过条件dept_emp d inner join...

weixin_43160613的博客 383

牛客SQL练习-25-获取员工其当前的薪水比其manager当前薪水还高的相关信息

思路: 先用INNER JOIN连接salaries和demp_emp,建立当前所有员工的工资记录sem; 再用INNER JOIN连接salaries和demp_manager,建立当前所有员工的工资记录sdm; 最后用限制条件sem.dept_no = sdm.dept_no AND sem.salary > sdm.salary找出同一部门中工资比经理高的员工,并根据题意依次输出emp_no、manager_no、emp_salary、manager_salary; SELECT de..

hmyqwe的博客 295

数据库SQL实战(牛客网):获取员工其当前的薪水比其manager当前薪水还高的相关信息

获取员工其当前的薪水比其manager当前薪水还高的相关信息,当前表示to_date=‘9999-01-01’, 结果第一列给出员工的emp_no, 第二列给出其manager的manager_no, 第三列给出该员工当前的薪水emp_salary, 第四列给该员工对应的manager当前的薪水manager_salary CREATE TABLE dept_emp ( emp_no int(11...

Mike的博客 447

SQL 获取员工其当前的薪水比其manager当前薪水还高的相关信息

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。描述有一个,部门关系表dept_emp简况如下:有一个部门经理表dept_manager简况如下:有一个薪水表salaries简况如下:获取员工其当前的薪水比其manager当前薪水还高的相关信息,第一列给出员工的emp_no,第二列给出其manager的manager_no,第三列给出该员工当前的薪水emp_salary,

pleaseprintf的博客 670
上一篇: SQL26 汇总各个部门当前员工的title类型的分配数目
下一篇: SQL24 获取所有非manager员工当前的薪水情况
Robin_Pi
博客等级 码龄9年 2万+粉丝 632原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值