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 需求: 想要查询到经销商的信 ...
随机推荐
- 1.5 Linux中大量使用脚本语言,而不是C语言!
说到在 Linux 下的编程,很多人会想到用C语言,Linux 的内核.shell.基础命令程序,也的确是用C语言编写的,这首先证明了一点,C语言很强很通用. 到目前为止,C语言依然垄断着计算机工业中 ...
- 掌握AI学习路上核心理论知识,你绝对不能错过这份最全资料包
人工智能成为当下科技发展的代表之一,持续受到了不少追捧,不管你是否是这一专业的学生或者职场人,学习并掌握一项新潮技能总是不会被同龄人淘汰的.我曾经问过别人.也被别人问过关于学习人工智能(AI)最好的方 ...
- redo log 和 binlog 的一些总结
1 redo log 和 binlog 的区别 redo log 是 InnoDB 引擎特有的:binlog 是 MySQL 的 Server 层实现的,所有引擎都可以使用. redo log 是物理 ...
- learnByWork
2019.5.5(移动端页面) 1.页面的整体框架大小min-width: 300px~max-width: 560px: 2.具体大小单位用px: 3.网页布局用div不是table,在特殊情况,如 ...
- CTFHub-HTTP协议五关刷题解答
CTFHub 开箱即用的CTF学习解决方案 地址:https://www.ctfhub.com/#/skilltree 本次解答一共包括五关,没有先后顺序. 1.技能树一:请求方式 题目描述 打开后得 ...
- java高级用法之:绑定CPU的线程Thread-Affinity
目录 简介 Java Thread Affinity简介 AffinityLock的使用 使用API直接分配CPU 总结 简介 在现代计算机系统中,可以有多个CPU,每个CPU又可以有多核.为了充分利 ...
- 【理论积累】C语言基础理论知识【第一版】
第一个程序 #include <stdio.h> int main(){ printf("Hello World"); } 变量与常量 变量类型:整型[int].字符型 ...
- Linux篇-mysql + keepalived高可用
1上次说过了mysql的主从配置 tar zxf keepalived-1.2.7.tar.gz cd keepalived-1.2.7 yum install gcc gcc-c++ yum ins ...
- K8S Calico网络插件
0.前言 参考文档:https://github.com/containernetworking/cni Pod网络插件,为了实现Pod网络而需要的插件.组件.由于Kubernetes通过开放的CNI ...
- 12.MYSQL基础-常见函数
4. 常见函数 一.字符函数 概念 类似于Java的方法,将一组逻辑语句封装在方法中,对外暴露方法名 优点 隐藏了实现细节 提高代码的重用性 调用 select 函数名(实参列表) [ from 表] ...