当前位置: 首页 > news >正文

07mysql查询语句之子查询

#1.查询和Zlotkey相同部门的员工姓名和工资
SELECT last_name,salary
FROM employees
WHERE department_id IN (
            SELECT department_id
            FROM employees
            WHERE last_name = 'Zlotkey'
);
#2.查询工资比公司平均工资高的员工的员工号,姓名和工资。
SELECT employee_id,last_name,salary
FROM employees
WHERE salary > (
        SELECT AVG(salary)
        FROM employees
);
#3.选择工资大于所有JOB_ID = 'SA_MAN'的员工的工资的员工的last_name, job_id, salary
SELECT last_name,job_id,salary
FROM employees
WHERE salary > ALL(
        SELECT salary
        FROM employees
        WHERE job_id = 'SA_MAN'
        );
#4.查询和姓名中包含字母u的员工在相同部门的员工的员工号和姓名
SELECT employee_id,last_name
FROM employees
WHERE department_id IN (
            SELECT DISTINCT department_id
            FROM employees
            WHERE last_name LIKE '%u%'
);
#5.查询在部门的location_id为1700的部门工作的员工的员工号
SELECT employee_id
FROM employees
WHERE department_id IN (
            SELECT department_id 
            FROM departments
            WHERE location_id = 1700
            );
#6.查询管理者是King的员工姓名和工资
SELECT last_name,salary,manager_id
FROM employees
WHERE manager_id IN (
            SELECT employee_id
            FROM employees
            WHERE last_name = 'King'
            );
#7.查询工资最低的员工信息: last_name, salary

SELECT last_name,salary
FROM employees
WHERE salary =(
        SELECT MIN(salary)
        FROM employees
        );
#8.查询平均工资最低的部门信息
#方式一:
SELECT * ,(SELECT AVG(salary) FROM employees WHERE department_id = d.`department_id`) avg_sal
FROM departments d
WHERE department_id = (
            SELECT department_id
            FROM employees
            GROUP BY department_id
            HAVING AVG(salary) = (
            SELECT MIN(avg_sal)
            FROM (
                SELECT AVG(salary) avg_sal
                FROM employees
                GROUP BY department_id
                ) t_dept_avg_sal
            )


                        );
#方式2:
SELECT d.*,(SELECT AVG(salary) FROM employees WHERE department_id = d.`department_id`) avg_sal
FROM departments d
WHERE department_id = (
            SELECT department_id
            FROM employees
            GROUP BY department_id
            HAVING AVG(salary) <= ALL(
                        SELECT AVG(salary) avg_sal
                        FROM employees
                        GROUP BY department_id
                        ) 

                        );
#方式3:LIMIT
SELECT d.*,(SELECT AVG(salary) FROM employees WHERE department_id = d.`department_id`) avg_sal
FROM departments d
WHERE department_id = (
            SELECT department_id
            FROM employees
            GROUP BY department_id
            HAVING AVG(salary) =(
                                    SELECT AVG(salary) avg_sal
                        FROM employees
                        GROUP BY department_id
                        ORDER BY avg_sal ASC
                        LIMIT 0,1
                        )
            );
#方式4:
SELECT d.*,(SELECT AVG(salary) FROM employees WHERE department_id = d.`department_id`) avg_sal
FROM departments d,(
SELECT department_id,AVG(salary) avg_sal
FROM employees
GROUP BY department_id
ORDER BY avg_sal ASC
LIMIT 0,1
) t_dept_avg_sal
WHERE d.`department_id`= t_dept_avg_sal.department_id
#9.查询平均工资最低的部门信息和该部门的平均工资(相关子查询)
#方式1:
SELECT d.*,(SELECT AVG(salary) FROM employees WHERE department_id = d.`department_id`) avg_sal
FROM departments d
WHERE department_id = (
            SELECT department_id
            FROM employees
            GROUP BY department_id
            HAVING AVG(salary) = (
            SELECT MIN(avg_sal)
            FROM (
                SELECT AVG(salary) avg_sal
                FROM employees
                GROUP BY department_id
                ) t_dept_avg_sal
            )


                        );
#10.查询平均工资最高的 job 信息
#方式1:
SELECT *
FROM jobs
WHERE job_id = (
SELECT job_id
FROM employees
GROUP BY job_id
HAVING AVG(salary) = (
            SELECT MAX(avg_sal)
            FROM (
                SELECT AVG(salary) avg_sal
                FROM employees
                GROUP BY job_id
                ) t_job_avg_sal
                      )
);

#方式2:
SELECT *
FROM jobs
WHERE job_id = (
SELECT job_id
FROM employees
GROUP BY job_id
HAVING AVG(salary) >= ALL (
            SELECT AVG(salary) 
            FROM employees
            GROUP BY job_id
                      )
);
#方式3:
SELECT *
FROM jobs
WHERE job_id = (
SELECT job_id
FROM employees
GROUP BY job_id
HAVING AVG(salary) = (
            SELECT MAX(avg_sal)
            FROM (
                SELECT AVG(salary) avg_sal
                FROM employees
                GROUP BY job_id
                ORDER BY avg_sal DESC
                LIMIT 0,1
                ) t_job_avg_sal
                      )
);

#方式4:
SELECT j.*
FROM jobs j,(
SELECT job_id,AVG(salary) avg_sal
FROM employees
GROUP BY job_id
ORDER BY avg_sal DESC
LIMIT 0,1
) t_job_avg_sal
WHERE j.job_id = t_job_avg_sal.job_id
#11.查询平均工资高于公司平均工资的部门有哪些?
SELECT department_id
FROM employees
WHERE department_id
GROUP BY department_id
HAVING AVG(salary) > (
            SELECT AVG(salary)
            FROM employees
            );
#12.查询出公司中所有 manager 的详细信息

#方式1:自连接
SELECT DISTINCT mgr.employee_id,mgr.last_name,mgr.job_id,mgr.department_id
FROM employees emp JOIN employees mgr
ON emp.`manager_id` =mgr.`employee_id`
#方式二:子查询
SELECT employee_id,last_name,job_id,department_id
FROM employees
WHERE employee_id IN (
            SELECT DISTINCT manager_id
            FROM employees
            );
#方式三:使用EXISTS
SELECT employee_id,last_name,job_id,department_id
FROM employees e1
WHERE EXISTS (
        SELECT *
        FROM employees e2
        WHERE e1.`employee_id` = e2.`employee_id`
        );

#13.各个部门中 最高工资中最低的那个部门的 最低工资是多少?
#方式一:
SELECT MIN(salary)
FROM employees
WHERE department_id = (
            SELECT department_id
            FROM employees
            GROUP BY department_id
            HAVING MAX(salary) = (
                        SELECT MIN(max_sal)
                        FROM (
                        SELECT MAX(salary) max_sal
                        FROM employees
                        GROUP BY department_id
                        ) t_dept_max_salary)
);
#方式2:
SELECT MIN(salary)
FROM employees
WHERE department_id = (
            SELECT department_id
            FROM employees
            GROUP BY department_id
            HAVING MAX(salary) <=ALL (
                        SELECT MAX(salary)
                        FROM employees
                        GROUP BY department_id
                        )
);
#方式3:
SELECT MIN(salary)
FROM employees
WHERE department_id = (
            SELECT department_id
            FROM employees
            GROUP BY department_id
            HAVING MAX(salary) = (
                        SELECT MAX(salary) max_sal
                        FROM employees
                        GROUP BY department_id
                        ORDER BY max_sal ASC
                        LIMIT 0,1
                        )
            );
#方式4:
SELECT MIN(salary)
FROM employees e,(
          SELECT department_id,MAX(salary) max_sal
          FROM employees
          GROUP BY department_id
          ORDER BY max_sal ASC
          LIMIT 0,1
          ) t_dept_max_sal
WHERE e.department_id = t_dept_max_sal.department_id
#14.查询平均工资最高的部门的 manager 的详细信息: last_name, department_id, email, salary
#方式1:
SELECT last_name,department_id,email,salary
FROM employees
WHERE employee_id IN (
            SELECT DISTINCT manager_id
            FROM employees
            WHERE department_id = (SELECT department_id
                        FROM employees
                        GROUP BY department_id
            HAVING AVG(salary) = (
                        SELECT MAX(avg_sal)
                        FROM (
                        SELECT AVG(salary) avg_sal
                        FROM employees
                        GROUP BY department_id
                              )t_dept_avg_sal
                        ))
            

);
#方式2:
SELECT last_name,department_id,email,salary
FROM employees
WHERE employee_id IN (
            SELECT DISTINCT manager_id
            FROM employees
            WHERE department_id = (SELECT department_id
                        FROM employees
                        GROUP BY department_id
            HAVING AVG(salary) >=ALL (
                        SELECT AVG(salary) avg_sal
                        FROM employees
                        GROUP BY department_id
                              )
                        )
            

);

#方式3:
SELECT last_name,department_id,email,salary
FROM employees
WHERE employee_id  IN (
            SELECT DISTINCT manager_id
            FROM employees e,(
                      SELECT department_id,AVG(salary) avg_sal
                      FROM employees
                      GROUP BY department_id
                      ORDER BY avg_sal DESC
                      LIMIT 0,1
                     ) t_dept_avg_sal
WHERE e.`department_id` = t_dept_avg_sal.department_id
);
#15. 查询部门的部门号,其中不包括job_id是"ST_CLERK"的部门号
#方式1:
SELECT department_id
FROM departments
WHERE department_id NOT IN(
                SELECT DISTINCT department_id
                FROM employees
                WHERE job_id = 'ST_CLERK'
);
#方式2:
SELECT department_id
FROM departments d
WHERE NOT EXISTS (
        SELECT *
        FROM employees e
        WHERE d.`department_id` = e.`department_id`
        AND e.`job_id` = 'ST_CLERK'
        );
#16. 选择所有没有管理者的员工的last_name

SELECT last_name
FROM employees e1
WHERE NOT EXISTS (
        SELECT *
        FROM employees e2
        WHERE e1.`manager_id` = e2.`employee_id`
);
#17.查询员工号、姓名、雇用时间、工资,其中员工的管理者为 'De Haan'
#方式1:
SELECT employee_id,last_name,hire_date,salary
FROM employees
WHERE manager_id IN (
            SELECT employee_id
            FROM employees
            WHERE last_name = 'De Haan' 
);
#方式2:
SELECT employee_id,last_name,hire_date,salary
FROM employees e1
WHERE EXISTS (
        SELECT *
        FROM employees e2
        WHERE e1.manager_id = e2.employee_id
        AND e2.last_name = 'De Haan'
        );
#18.查询各部门中工资比本部门平均工资高的员工的员工号, 姓名和工资(相关子查询)
#方式1:使用相关子查询
SELECT last_name,salary,department_id
FROM employees e1
WHERE salary > (
        SELECT AVG(salary)
        FROM employees e2
        WHERE department_id = e1.`department_id`

);

#方式2:在from中声明子查询
SELECT e.last_name,e.salary,e.department_id
FROM employees e,(
SELECT department_id,AVG(salary) avg_sal
FROM employees
GROUP BY department_id) t_dept_avg_sal
WHERE e.department_id = t_dept_avg_sal.department_id
AND e.salary > t_dept_avg_sal.avg_sal
#19.查询每个部门下的部门人数大于 5 的部门名称(相关子查询)
SELECT department_name
FROM departments d
WHERE 5 < (
       SELECT COUNT(*)
       FROM employees e
       WHERE d.department_id = e.`department_id`
       );
#20.查询每个国家下的部门个数大于 2 的国家编号(相关子查询)

SELECT * FROM locations;

SELECT country_id
FROM locations l
WHERE 2 < (
       SELECT COUNT(*)
       FROM departments d
       WHERE l.`location_id` = d.`location_id`
       );
       
/*
子查询的编写技巧(或步骤):①从里往外写 ②从外往里写

如何选择?
①如果子查询相对简单,建议从外往里写。一单子查询结构较复杂,则建议从里往外写
②如果是相关子查询的话,通畅都是从外往里写
*/

相关文章:

07mysql查询语句之子查询

#1.查询和Zlotkey相同部门的员工姓名和工资 SELECT last_name,salary FROM employees WHERE department_id IN ( SELECT department_id FROM employees WHERE last_name Zlotkey ); #2.查询工资比公司平均工资高的员工的员工号&#xff0…...

笙默考试管理系统-MyExamTest(22)

笙默考试管理系统-MyExamTest&#xff08;22&#xff09; 目录 一、 笙默考试管理系统-MyExamTest 二、 笙默考试管理系统-MyExamTest 三、 笙默考试管理系统-MyExamTest 四、 笙默考试管理系统-MyExamTest 五、 笙默考试管理系统-MyExamTest 笙默考试管理系统-MyExa…...

Windows 不同方式打开的cmd/dos窗口属性配置不同

文章目录 1. 默认值&#xff08;控制台窗口&#xff09;属性2. "C:\Windows\System32\cmd.exe" 属性3. "命令提示符"属性4. 自定义某标题cmd窗口属性5. cmd快捷方式的属性总结 最近在写某个批处理脚本时&#xff0c;意外发现 Windows系统中&#xff0c;在不…...

性能优化-webpack配置gzip

3步搞定&#xff0c;实测1.3Mjs压缩到363k&#xff0c;体积减少70% 1.装包 yarn add compression-webpack-plugin --dev 2.配置webpack 打开config/webpack.config.js 1&#xff09;在 module.exports 导出函数前面引入插件 // gzip插件 const CompressionPlugin require(&qu…...

RabbitMQ 教程 | 第3章 客户端开发向导

&#x1f468;&#x1f3fb;‍&#x1f4bb; 热爱摄影的程序员 &#x1f468;&#x1f3fb;‍&#x1f3a8; 喜欢编码的设计师 &#x1f9d5;&#x1f3fb; 擅长设计的剪辑师 &#x1f9d1;&#x1f3fb;‍&#x1f3eb; 一位高冷无情的编码爱好者 大家好&#xff0c;我是 DevO…...

基于深度学习的CCPD车牌检测系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于CCPD数据集的高精度车牌检测系统可用于日常生活中检测与定位车牌目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的车牌目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型训练数据集…...

input元素中的form属性有什么用?

在HTML中&#xff0c;input元素的form属性用于指定该输入字段所属的表单&#xff08;form元素&#xff09;。通过将input元素的form属性设置为相应的表单的id值&#xff0c;可以将输入字段与表单进行关联。 这个属性对于两个主要目的非常有用&#xff1a; 表单关联&#xff1…...

【数据结构篇C++实现】- 特殊的线性表 - 串

友情链接&#xff1a;C/C系列系统学习目录 文章目录 串&#x1f680;一、串的定义&#x1f680;二、串的存储结构&#x1f6f4;&#xff08;一&#xff09;串的顺序存储结构1、定长顺序存储表示2、堆分配存储表示 &#x1f6f4;&#xff08;二&#xff09;串的链式存储结构3、块…...

DevOps系列文章 之 Springboot单元测试

在没有代码生成工具或尝试一门新的 ORM框架时&#xff0c;当我们希望不去另外写 Service 和 Controller 来验证 DAO 层的代码不希望只通过接口请求的方式来验证时&#xff0c;这时候单元测试的方式就可以帮助我们满足这一需求。 在我们开发Web应用时&#xff0c;经常会直接去观…...

04 linux之C 语言高级编程

gcc和gdb GNU工具 编译工具&#xff1a;把一个源程序编译为一个可执行程序调试工具&#xff1a;能对执行程序进行源码或汇编级调试软件工程工具&#xff1a;用于协助多人开发或大型软件项目的管理&#xff0c;如make、CVS、Subvision其他工具&#xff1a;用于把多个目标文件链…...

深入学习 Redis - Stream、Geospatial、HyperLogLog、Bitmap、Bitfields 类型扩展

目录 前言 Stream geospatial HyperLogLog Bitmaps Bitfields 前言 redis 中最关键的五个数据类型 String、List、Hash、Set、Zset 应用最广泛&#xff0c;同时 redis 也推出了额外的 5 个数据类型&#xff0c;他们分别是针对特殊场景才进行的应用的. Ps&#xff1a;这几种…...

Windows11+Opencv+Clion编译源码

Windows11OpencvClion编译源码 参考&#xff1a;https://www.robotsfan.com/posts/69395e08.html 注意事项 编译过程中使用的软件&#xff0c;开源码等所有工具的安装路径一定不要有中文和空格。cmake过程会下载一些文件&#xff0c;如果是局域网的话可能下载不下来&#xf…...

【机器学习】Cost Function

Cost Function 1、计算 cost2、cost 函数的直观理解3、cost 可视化总结附录 首先&#xff0c;导入所需的库&#xff1a; import numpy as np %matplotlib widget import matplotlib.pyplot as plt from lab_utils_uni import plt_intuition, plt_stationary, plt_update_onclic…...

【黑马头条之内容安全第三方接口】

本笔记内容为黑马头条项目的文本-图片内容审核接口部分 目录 一、概述 二、准备工作 三、文本内容审核接口 四、图片审核接口 五、项目集成 一、概述 内容安全是识别服务&#xff0c;支持对图片、视频、文本、语音等对象进行多样化场景检测&#xff0c;有效降低内容违规风…...

回归预测 | MATLAB实现GRNN广义回归神经网络多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现GRNN广义回归神经网络多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现GRNN广义回归神经网络多输入单输出回归预测(多指标,多图)效果一览基本介绍程序设计参考资料效果一览 基本介绍 MATLAB实现GRNN广义回归神经网络多输入单输出回归…...

STM32 HAL库函数——HAL_UART_RxCpltCallback()详解

HAL_UART_RxCpltCallback函数 他是谁&#xff0c;他和谁有关功能用法每收到一个字符&#xff0c;就自动调用一次&#xff1f;&#xff1f;示例----接收未知长度的字符 他是谁&#xff0c;他和谁有关 HAL_UART_RxCpltCallback 是一个回调函数&#xff0c;用于在使用 HAL 库进行…...

前端调用合约如何避免出现transaction fail

前言&#xff1a; 作为开发&#xff0c;你一定经历过调用合约的时候发现 gas fee 超出限制&#xff0c;但是不知道报了什么错。这个时候一般都是触发了require错误合约校验。对于用户来说他不理解为什么一笔交易会花费如此大的gas&#xff0c;那我们作为开发如何尽量避免这种情…...

选择器的使用

目录 层级选择器属性选择器伪类选择器结构伪类选择器目标伪类选择器 层级选择器 /*子代选择器&#xff1a;选出box下的所有li标签*/.box>li{background-color: aliceblue;}/* 选出box后面的第一个兄弟li标签 */.boxli{background-color: aliceblue;}/* 选出box后面的所有兄…...

软考A计划-系统集成项目管理工程师-项目干系人管理-上

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…...

F5 LTM 知识点和实验 2-负载均衡基础概念

第二章&#xff1a;负载均衡基础概念 目标&#xff1a; 使用网页和TMSH配置virtual servers&#xff0c;pools&#xff0c;monitors&#xff0c;profiles和persistence等。查看统计信息 基础概念&#xff1a; Node一个IP地址。是创建pool池的基础。可以手工创建也可以自动创…...

8. Python 模块与包 深度解析

Python 模块与包 深度解析 目录 模块与包的概念模块基础 2.1 模块即 .py 文件2.2 import 语句与 from ... import2.3 模块搜索路径 sys.path 模块的编译与缓存包 4.1 常规包与 __init__.py4.2 命名空间包4.3 相对导入与绝对导入 __name__ 与 "__main__"模块与包的组…...

Warcraft Helper:现代Windows环境下魔兽争霸3兼容性技术解决方案深度解析

Warcraft Helper&#xff1a;现代Windows环境下魔兽争霸3兼容性技术解决方案深度解析 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper Warcraft Helper…...

ThinkPad风扇控制终极指南:TPFanCtrl2让你的笔记本更安静更智能

ThinkPad风扇控制终极指南&#xff1a;TPFanCtrl2让你的笔记本更安静更智能 【免费下载链接】TPFanCtrl2 ThinkPad Fan Control 2 (Dual Fan) for Windows 10 and 11 项目地址: https://gitcode.com/gh_mirrors/tp/TPFanCtrl2 还在为ThinkPad笔记本风扇噪音而烦恼吗&…...

在Windows通知栏悄悄学习:ToastFish让你的碎片时间变成单词记忆神器

在Windows通知栏悄悄学习&#xff1a;ToastFish让你的碎片时间变成单词记忆神器 【免费下载链接】ToastFish 一个利用摸鱼时间背单词的软件。 项目地址: https://gitcode.com/GitHub_Trending/to/ToastFish 想象一下这样的场景&#xff1a;你正在办公室里忙碌地处理文件…...

逻辑流中,判断操作符NULLOREMPTY的限制

问题描述&#xff1a; 逻辑流中&#xff0c;判断操作符NULLOREMPTY的限制 解决方案: NULLOREMPTY与NOTNULLOREMPTY都只能判断值是null或者空字符串&#xff0c;判断空对象不生效。建议如果是{}空对象&#xff0c;请使用java表达式去写判断条件。 比如下图&#xff1a;Busin…...

在 Elasticsearch 中,存储向量查询速度最高提升 3 倍

作者&#xff1a;来自 Elastic Benjamin Trent Elasticsearch 9.4 提供了一种更简单的方式来搜索存储在 Elasticsearch 索引中的向量&#xff0c;并将延迟最高降低 3 倍。 从向量搜索到强大的 REST API&#xff0c;Elasticsearch 为开发者提供了最全面的搜索工具集。深入体验 E…...

开关电源负反馈环路设计:从传递函数到稳定性实战

1. 项目概述&#xff1a;从“开环”到“闭环”的认知跃迁在电源设计&#xff0c;尤其是开关电源设计的领域里&#xff0c;“负反馈”是一个既基础又核心的概念。很多工程师在入门时&#xff0c;可能会把注意力集中在功率拓扑的选择、电感电容的计算、MOSFET的选型上&#xff0c…...

保姆级教程:在RK3588开发板上用Python部署NanoTrack,实测120FPS真香

保姆级教程&#xff1a;在RK3588开发板上用Python部署NanoTrack&#xff0c;实测120FPS真香 RK3588作为当前嵌入式AI领域的旗舰级芯片&#xff0c;其强大的NPU算力让边缘设备也能流畅运行复杂的视觉算法。本文将手把手带你完成NanoTrack模型从转换到部署的全流程&#xff0c;实…...

7.跨品牌手机刷机原理深度解析|BL 解锁机制 + 分区读写 + 故障修复全方案

摘要 本文系统性地阐述主流品牌智能手机(华为、小米、OPPO、vivo、一加、苹果)刷机与维修的核心原理与操作流程。针对不同品牌底层架构差异,提供从Bootloader解锁、Recovery刷写到系统固件注入的完整技术方案。所有操作步骤均基于实际硬件环境验证,包含完整可运行的Python…...

聊聊6G试验频率

2026年5月8日&#xff0c;工业和信息化部向IMT-2030&#xff08;6G&#xff09;推进组批复6G试验频率使用许可&#xff0c;支持其在部分地区开展6G技术试验。这一看似平常的行政批复&#xff0c;却有里程碑式的意义。它标志着中国6G产业进入到新的阶段&#xff0c;正加速从实验…...