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 需求: 想要查询到经销商的信 ...
随机推荐
- vmware ubuntu 忘记密码
1.进入recovery模式 修改root密码 1.启动ubuntu系统,一开始在有进度条的时候按下shift键,出现GRUB选择菜单,选择Advanced options for Ubuntu 按回 ...
- 【mq】从零开始实现 mq-07-负载均衡 load balance
前景回顾 [mq]从零开始实现 mq-01-生产者.消费者启动 [mq]从零开始实现 mq-02-如何实现生产者调用消费者? [mq]从零开始实现 mq-03-引入 broker 中间人 [mq]从零 ...
- 操作系统实现-loader
博客网址:www.shicoder.top 微信:18223081347 欢迎加群聊天 :452380935 大家好呀,终于我们到了操作系统的loader部分了,loader也是操作系统中最重要的一个 ...
- 理解 Angular 服务
理解 Angular 服务 本文写于 2021 年 3 月 29 日 理解 Angular 服务 什么是服务 服务写法 原理简述 提供服务 1. 在服务中注册 2. 在 module 中注册 3. 在 ...
- 华为OPS,自定义命令,动态执行命令
OPS 开放可编程系统OPS(Open Programmability System)是指设备通过提供统一的应用程序接口API(Application Programming Interfa ...
- 聊聊C#中的Visitor模式
写在前面 Visitor模式在日常工作中出场比较少,如果统计大家不熟悉的模式,那么它榜上有名的可能性非常大.使用频率少,再加上很多文章提到Visitor模式都着重于它克服语言单分派的特点上面,而对何时 ...
- Spring Authorization Server 0.3.0 发布,官方文档正式上线
基于OAuth2.1的授权服务器Spring Authorization Server 0.3.0今天正式发布,在本次更新中有几大亮点. 文档正式上线 Spring Authorization Ser ...
- 测试平台系列(94) 前置条件该怎么支持Python呢
回顾 上一节我们狠狠操练了一番oss,但我们的任务还很长久,所以我们需要继续打磨我们的功能. 那今天就让我们来思考下,如何在前置条件支持python脚本,多的不说,我们也暂时不考虑其他语言,因为光考虑 ...
- AR Engine运动跟踪能力,高精度实现沉浸式AR体验
随着电子产品的普遍应用,AR技术也开始广泛普及,在游戏.电商.家装等领域都有涉及.比如,在室内设计时,我们可以通过AR技术在实际场景中进行虚拟软装的搭配,运用华为AR Engine运动跟踪能力在实际应 ...
- 什么是Gerber文件?PCB电路板Gerber文件简介
什么是Gerber文件: Gerber也叫"光绘",通常只代表一种格式如RS-274, 274D, 274X等,充任了将设计的图形数据转换成PCB制造的两头媒介,即一种CAD-CA ...