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 需求: 想要查询到经销商的信 ...
随机推荐
- Linux学习教程 | 全文目录
本教程最大的特点是通俗易懂,并且非常详细,花费 7 天时间即可快速了解 Linux. 第一章 Linux简介 1.1 操作系统是什么,操作系统概述 1.2 Linux是什么,有哪些特点? 1.3 Li ...
- 干货 | 一文彻底读懂nginx中的location指令
一个执着于技术的公众号 Nginx系列导读 给小白的 Nginx 10分钟入门指南 Nginx编译安装及常用命令 完全卸载nginx的详细步骤 Nginx 配置文件详解 一文带你读懂Nginx反向代理 ...
- Markdown基础语法(上)
前言 按照官方文档,和根据自己所用和所理解所写 一.标题语法 一级标题最大,六级标题最小 # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标 ...
- 探索 Python/Django 支持分布式多租户数据库,如 Postgres+Citus
在 确定分布策略 中,我们讨论了在多租户用例中使用 Citus 所需的与框架无关的数据库更改. 在这里,我们专门研究如何借助 django-multitenant 库将多租户 Django 应 用程序 ...
- 流量治理神器-Sentinel 究竟是怎么做到让业务方接入简单?
大家好,我是架构摆渡人,这是流量治理系列的第10篇原创文章,如果有收获,还请分享给更多的朋友. 做业务开发,需要考虑业务的扩展性.做基础框架开发,需要考虑如何让业务方接入,使用简单,尽量不要耦合在业务 ...
- 使用BGP-blackhole解决IDC频繁遭受DDOS攻击困扰
项目背景 该项目位于某市级BGP IDC机房,机房客户多为web业务,遭受小流量攻击(10G量级)较为频繁,针对这一现象在机房core旁路部署ADS系统,牵引异常流量清洗后进行回源,该清洗方案在此不再 ...
- 通过CSS让图片变的清楚
image { width: 100%; height: 100%; border-radius: 10upx; //让图片变清楚 image-rendering: -moz-crisp-edges; ...
- C# 蓄水池抽样
蓄水池采样算法解决的是在给定但长度未知的大数据集中,随机等概率抽取一个数据.如果知道数据的长度,可以用随机数rand()%n得到一个确切的随机位置,或者分块取值来构造随机,那么该位置的对象就是所求的对 ...
- 用t-SNE进行流形学习(digits数据集)
流行学习算法: 是一类用于可视化的算法,它允许进行更复杂的映射,通常也可以给出更好的可视化. t-SNE算法是其中一种. PCA是用于变换数据的首选方法,也可以进行可视化,但它的性质(先旋转然后减少方 ...
- CF1625D - Binary Spiders[trie树优化dp]
官方题解 题意:给数列a[],选择尽量多的数满足任意两个异或起来<=k 1625D - Binary Spiders 思路:首先,将数列排序得到,然后升序取得的值的任意两个最小值为相邻两个异或的 ...