11 MySQL_分组查询和关联查询
分组查询 group by
将某个字段的相同值分为一组,对其他字段的数据进行聚合函数的统计,称为分组查询
单字段分组查询
1.查询每个部门的平均工资
select dept_id,avg(sal) from emp group by dept_id;2.查询每个职位的最高工资
select job, max(sal) from emp group by job;3.查询每个部门的人数
select dept_id,count(*) from emp group by dept_id;4.查询每个职位 中工资大于1000的人数
select job,count(*) from emp where sal>1000 group by job ;5.查询每个领导手下的人数
select mgr,count(*) from emp where mgr is not null and mgr <>0 group by mgr;练习
select job,avg(sal) from emp where avg(sal)>2000 group by job; select job,avg(sal) from emp group by job having avg(sal) >2000; select job, count(*) c from emp group by job having c > 1; select dept_id,sum(sal) s from where mgr is not null emp group by dept_id having s>5000; select dept_id,avg(sal) where sal between 1000 and 3000 group by dept_id having>=2000; select * from emp where sal>(select avg(sal) from emp where dept_id=2);
多字段分组查询
1.查询每个部门每个主管手下的人数;
select job,,count(*) where mgr is null group by dept_id,
having
后跟聚合函数的条件;
不能单独使用,常和group by组队出现,跟在其后面
select job count(*) c from emp group by job having c>1000;
字段查询顺序
select 查询字段信息 from 表名 where 普通字段条件 group by
分组字段名 having 聚合函数条件 order by 排序字段名 limit 跳过条数,请求条数;
子查询(嵌套查询)
查询工资大于2号部门平均工资的员工信息
查询员工高于程序员最高工资的员工信息
select * from emp where sal>(select max(sal) from emp where job='程序员');
查询工资最高的员工信息
select name,max(sal) from emp group by name;
查询和孙悟空相同工作的员工信息
select job from emp where name='孙悟空'; select * from emp where job=(select job from emp where name='孙悟空') and name<>'孙悟空';
查询那最低工资员工的同事们的信息,(同事指同一部门)
select min(sal) from emp ; select dept_id from emp where sal=(select min(sal) from emp) select * from where dept_id=(select dept_id from sal=(select min(sal) from emp));
关联查询之等值连接
格式: select * from A,B where 关联关系
1.查询每个员工 姓名和对应的部门名字
select e.name,d.name from emp e,dept d where e.dept_id=d.id and sal > 2000;
关联查询之内连接
格式: select * from A join B on 关联关系
1.查询工资高于2000的员工姓名和对应的部门名
select e.name,d.name from emp e join dept d on e.dept_id =d.id where sal>2000; select e.name ,d.name from emp e join dept d on e.dept_id=d.id where sal >2000;- 查询有领导并且和销售有关的员工姓名,工作,部门名,部门地点
关联查询之外连接
等值连接和内连接查询到的都是两张表的交集数据;
外连接查询的是一张表 全部和另一张表的交集数据
格式 select * from A left join B on 关联关系
1.查询所有员工姓名和对应的部门名 select e.name,d.name from emp e left join dept d on e.dept_id=d.id; select e.name,d.name from emp emp e left join dept d on e.dept_id=id; select e.name,d.name from emp e left join dept d on e.dept_id=d.id; 2.查询所有部门的名称/地点和对应的员工姓名和工资 select d.name,d.loc,e.name,e.sal from emp e left join dept d on e.dept_id =d.id;
11 MySQL_分组查询和关联查询的更多相关文章
- Mongoose如何实现统计查询、关联查询
[问题]Mongoose如何实现统计查询.关联查询 发布于 4 年前 作者 a272121742 13025 次浏览 最近业务上提出一个需求,要求能做统计,我们设计的文档集,统计可能跨越的文档会 ...
- MySQL查询(关联查询)
一.mysql查询与权限 (一)数据库关联查询 **内连接查询(inner join)** 查询两个表共有的数据,交集 SELECT * FROM tb1 INNER JOIN tb2 ON 条件 所 ...
- mysql系列九、mysql语句执行过程及运行原理(分组查询和关联查询原理)
一.背景介绍 了解一个sql语句的执行过程,了解一部分都做了什么,更有利于对sql进行优化,因为你知道它的每一个连接.where.分组.子查询是怎么运行的,都干了什么,才会知道怎么写是不合理的. 大致 ...
- Mybatis高级查询之关联查询
learn from:http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html#Result_Maps 关联查询 准备 关联结果查询(一对一) resul ...
- day95:flask:SQLAlchemy数据库查询进阶&关联查询
目录 1.数据库查询-进阶 1.常用的SQLAlchemy查询过滤器 2.常用的SQLAlchemy查询结果的方法 3.filter 4.order_by 5.count 6.limit&of ...
- Mysql子查询、关联查询
mysql中update.delete.install尽量不要使用子查询 一.mysql查询的五种子句 where(条件查询).having(筛选).group by(分组).orde ...
- Mysql - 查询之关联查询
查询这块是重中之重, 关系到系统反应时间. 项目做到后期, 都是要做性能测试和性能优化的, 优化的时候, 数据库这块是一个大头. sql格式: select 列名/* from 表名 where 条件 ...
- SQL笛卡尔积查询与关联查询性能对比
首先声明一下,sql会用略懂,不是专家,以下内容均为工作经验,聊以抒情. 今天帮忙验证同事发布的端口时,查看了一下相关sql内容,发现其使用的sql语句会导致笛卡尔积现象,为了帮其讲解进行了如下分析: ...
- 【sql】关联查询+表自关联查询
表: 经销商 dealer 字段 uid parent_uid name 联系人 contact 字段 uid dealer_id contact_main 需求: 想要查询到经销商的信 ...
随机推荐
- InnoDB数据存储结构
MySQL服务器上 存储引擎 负责对表中数据的读取和写入工作,不同存储引擎中 存放的格式 一般是不同的,甚至有的存储引擎(Memory)不用磁盘来存储数据. 页 (Page) 是磁盘和内存之间交互的基 ...
- Flutter 状态管理框架 Provider 和 Get 分析
文/ Nayuta,CFUG 社区 状态管理一直是 Flutter 开发中一个火热的话题.谈到状态管理框架,社区也有诸如有以 Get.Provider 为代表的多种方案,它们有各自的优缺点. 面对这么 ...
- QY-19 GNSS位移监测站 地质灾害在线监测-实时预警
概述 GNSS的全称是全球导航卫星系统(Global Navigation Satellite System),它是泛指所有的卫星导航系统,包括全球的.区域的和增强的,如美国的GPS.俄罗斯的Glon ...
- Java学习笔记-基础语法Ⅷ-泛型、Map
泛型 泛型本质上是参数化类型,也就是说所操作的数据类型被指定为一个参数,即将类型由原来的具体的类型参数化,然后在使用/调用时传入具体的类型,这种参数类型可以用在类.方法和接口中,分别为泛型类.泛型方法 ...
- 一文带你读懂 Hbase 的架构组成
hi,大家好,我是大D.今天咱们继续深挖一下 HBase 的架构组成. Hbase 作为 NoSQL 数据库的代表,属于三驾马车之一 BigTable 的对应实现,HBase 的出现很好地弥补了大数据 ...
- 好客租房54-props深入(children属性)
children属性 表示组件标签的子节点 当组件标签有子节点是 props就会有该属性 props中的组件可以是任意属性 都是可以渲染的 //导入react import React fro ...
- 【产品】如何写好APP描述
你有没有想过越是需要花钱购买的 App,用户会更认真阅读你的 App描述?本文列举了15个 app 描述,看看哪些是我们以前忽略了的,哪些是我们也犯过的错误.图中有红色背景的文字是需要强调的地方,这些 ...
- 【原创】eNSP路由器启动#号问题排查
1.删除拖出来的设备,重新拖出来一台---我用过[有时候好使] 2.确保Ensp的设置-工具-Virtual Box安装目录是否正确--我也遇到过[尤其是卸载掉Virtual Box重装之后] 3.确 ...
- 为什么Dapr是比SpringCloud和Istio更优雅的微服务框架?
Dapr 是微软主导的云原生开源项目,2019年10月首次发布,到正式发布 V1.0 版本的不到一年的时间内,github star 数达到了 1.2万(现在已经超过1.7万星),超过同期的 kube ...
- PostgreSQL Array 数组类型与 FreeSql 打出一套【组合拳】
前言 PostgreSQL 是世界公认的功能最强大的开源数据库,除了基础数据类型 int4/int8/varchar/numeric/timestamp 等数据类型,还支持 int4[]/int8[] ...