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

子查询的相关例题

子查询的相关例题:

  • 查询和Zlotkey相同部门的员工姓名和工资
SELECT e1.last_name,e1.first_name,e1.salary
FROM employees e1
WHERE e1.department_id = (SELECT e2.department_idFROM employees e2WHERE e2.last_name='Zlotkey'
);
  • 查询工资比公司平均工资高的员工号,姓名和工资
SELECT employee_id,last_name,salary
FROM employees
WHERE  salary >
(
SELECT AVG(salary)
FROM employees
);
  • 查询工资大于所有JOB_ID=‘SA_MAN’d的员工的工资 的 员工的last_name,job_id,salaty
SELECT last_name,job_id,salary
FROM employees
WHERE salary > ALL
(SELECT salaryFROM employees WHERE job_id= 'SA_MAN'
);
  • 查询 姓名中包含字母u的员工在相同部门的员工的员工号和姓名
SELECT employee_id,last_name
FROM employees
WHERE department_id IN(SELECT DISTINCT department_idFROM employeesWHERE last_name like '%u%'
);
  • 查询在部门的location_id为1700的部门工作的员工号
SELECT e.employee_id
FROM employees e
WHERE e.department_id IN (SELECT d.department_idFROM departments dWHERE d.location_id=1700
);
  • 查询管理者是King的员工姓名和工资
SELECT e1.last_name,e1.salary
FROM employees e1
WHERE e1.manager_id IN
(SELECT employee_idFROM employeesWHERE last_name='King'
);
  • 查询工资最低的员工信息:last_name,salary
SELECT last_name,salary
FROM employees
WHERE salary=(SELECT MIN(salary)FROM employees
);
  • 查询平均工资最低的部门信息

SELECT *
FROM departments
WHERE department_id = (SELECT e2.department_idFROM employees e2GROUP BY e2.department_idHAVING AVG(salary)=(SELECT MIN(avgsal)From(SELECT AVG( e1.salary) avgsalFROM employees e1GROUP BY e1.department_id) newtable)
);
SELECT *
FROM departments
WHERE department_id = (SELECT e2.department_idFROM employees e2GROUP BY e2.department_idHAVING AVG(salary)<= ALL(SELECT AVG( e1.salary) FROM employees e1GROUP BY e1.department_id) );
SELECT *
FROM departments
WHERE department_id = (SELECT e2.department_idFROM employees e2GROUP BY e2.department_idHAVING AVG(salary)=(SELECT AVG( e1.salary) avgsalFROM employees e1GROUP BY e1.department_idORDER BY avgsal ASCLIMIT 1) 
);
SELECT d.*
FROM departments d,(SELECT department_id,AVG( e1.salary) avgsalFROM employees e1GROUP BY e1.department_idORDER BY avgsal ASCLIMIT 1
) newtable
WHERE d.department_id=newtable.department_id;
  • 查询平均工资最低的部门信息和该部门的平均工资
SELECT d.*,(SELECT AVG(salary) FROM employees WHERE department_id=d.department_id) avgsal
FROM departments d
WHERE department_id = (SELECT e2.department_idFROM employees e2GROUP BY e2.department_idHAVING AVG(salary)=(SELECT AVG( e1.salary) avgsalFROM employees e1GROUP BY e1.department_idORDER BY avgsal ASCLIMIT 1) 
);
  • 查询平均工资最高的job信息

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)
);
  • 查询平均工资高于公司平均工资的部门有那些
SELECT department_id
FROM employees
WHERE department_id IS NOT NULL
GROUP BY department_id
HAVING AVG(salary) > (SELECT avg(salary)
FROM employees);
  • 查询公司中所有manager的详细信息
SELECT *
FROM employees
where employee_id IN (SELECT DISTINCT manager_idFROM employees
)
  • 各个部门中,最高工资中最低的那个部门 最低工资是多少
SELECT MIN(salary)
FROM employees
GROUP BY department_id
HAVING MAX(salary)<= ALL(SELECT MAX(salary)
FROM employees
GROUP BY department_id)
  • 查询平均工资最高的部门的manger的详细信息
SELECT last_name,department_id,email,salary
FROM employees
WHERE employee_id IN (
SELECT DISTINCT manager_id
FROM employees
WHERE department_id IN (SELECT department_id
FROM employees
GROUP BY department_id
HAVING avg(salary)>=ALL (SELECT avg(salary)FROM employeesGROUP BY department_id
)
)
)
  • 查询部门的部门号,其中不包括job_id是“ST_CLERK”的部门号
SELECT d.department_id
FROM departments d
WHERE NOT EXISTS(SELECT *FROM employees eWHERE d.department_id = e.department_idAND e.job_id = 'ST_CLERK'
);
SELECT department_id
FROM departments
WHERE department_id NOT IN(SELECT DISTINCT department_id
FROM employees
WHERE job_id='ST_CLERK'
);
  • 选择所有没有管理者的员工的last_name
SELECT last_name
FROM employees
WHERE manager_id IS NULL
SELECT last_name 
FROM employees emp
WHERE NOT EXISTS
(SELECT *FROM employees mgrWHERE emp.manager_id =mgr.employee_id
)
  • 查询员工号、姓名、雇佣时间、工资,其中员工的管理者为“De Haan”

SELECT employee_id,last_name,hire_date,salary
FROM employees
WHERE manager_id IN (SELECT employee_id
FROM employees
WHERE last_name='De Haan')SELECT employee_id,last_name,hire_date,salary
FROM employees e1
WHERE EXISTS(SELECT *FROM employees e2WHERE e1.manager_id=e2.employee_idAND e2.last_name='De Haan'
)
  • 查询每个部门下的部门人数大于5的部门名称
SELECT department_name
FROM departments d
WHERE 5<(
SELECT COUNT(1)
FROM employees e
where e.department_id=d.department_id
)
  • 查询每个国家下的部门个数大于2的国家编号
SELECT country_id
FROM locations l
WHERE 2<(SELECT COUNT(*)FROM departments dWHERE l.location_id=d.location_id
)

如果子查询相比较简单,建议从外往里写。一旦子查询结构比较复杂,建议从里往外写

如果是相关子查询,通常是从外往里写

http://www.lryc.cn/news/13780.html

相关文章:

  • vue2.0与vue3.0及vue与react区别
  • 【SQL】MySQL秘籍
  • vue-router 的基本用法
  • 图像显著性目标检测
  • 力扣-查找重复的电子邮箱
  • 如何选择正规可靠的ISO认证机构?
  • React源码解读之更新的创建
  • 【程序人生】从土木专员到网易测试工程师,薪资翻3倍,他经历了什么?
  • C++——C++11第二篇
  • 14.最长公共前缀
  • 【免费教程】 SWMM在城市水环境治理中的应用及案例分析
  • SortableJS/Sortable拖拽组件,使用详细(Sortablejs安装使用)
  • Heartbeat+Nginx实验
  • JavaEE|网络编程之套接字 TCP
  • Robot Framework自动化测试---元素定位
  • ASP.NET Core中的路由
  • VBA提高篇_26 Textbox多行_ListBox_ComboBox
  • python环境配置
  • 集算器连接外部库
  • 力扣刷题|216.组合总和 III、17.电话号码的字母组合
  • 机器学习笔记之谱聚类(一)k-Means聚类算法介绍
  • 云原生周刊 | 2023 年热门:云 IDE、Web Assembly 和 SBOM | 2023-02-20
  • python 打包EXE
  • CANopen概念总结、心得体会
  • 【2】MYSQL数据的导入与导出
  • Kaggle系列之CIFAR-10图像识别分类(残差网络模型ResNet-18)
  • ESP-C3入门11. 创建最基本的HTTP请求
  • K8S+Jenkins+Harbor+Docker+gitlab集群部署
  • 看见统计——第四章 统计推断:频率学派
  • 2023年2月访问学者博士后热门国家出入境政策变化汇总