SQL-分组聚合-子查询
-- having前面必须有group by
select e.deptno
,sum(e.sal) as sum_sal
,min(e.sal) as min_sal
,max(e.sal) as max_sal
,avg(e.sal) as avg_sal
,count(e.ename) as ct1
from emp e
group by e.deptno
having e.deptno = 20
;
-- 因为null值不做统计,所以用count(1)统计效率更高
select count(1) from emp;
-- 正序 asc 、 倒叙 desc
select *
from emp e
order by e.sal; --(asc/desc)
-- 指定空值的位置 (在前 nulls first)(在后 nulls last)
select *
from emp e
order by e.eomm nulls first;
-- group by 和 distinct 都是去重,但是group by还有分组聚合的职能。
-- primary key 主键约束 、 foreign key 外键
-- (一张表想要指向另一张表,需要设置主键外键)
-- 删除 先子后父 、 添加 先父后子
-- 关联 join...on... 是标准写法的固定语法 (内关联只显示关联得了的数据)
-- 关联的本质:从一张表中依次取一条数据和另一张表的每一条数据进行一次匹配
-- 内关联 (同一张表可以多次使用,例如 emp e 、 emp b)
select *
from emp e
join dept b on e.deptno = b.deptno;
-- 外关联 为了符合阅读习惯,只写左外 (主表数据不丢失)
select e.*,d.*
from emp e
left join dept d on e.deptno = d.deptno;
-- 关联的条件写在where后面就是取数条件,写在on后面则是关联条件
--(建议把条件写在on后面,这样性能好一点)
-- 多表关联 语法
select *
from emp a
join emp b on a.deptno = b.deptno
join emp c on a.deptno = b.deptno
join dept d on a.deptno = b.deptno;
-- 笛卡尔积 服务器突然变慢的原因之一
-- 子查询 (查询套查询)(子查询是可以单独执行的)
-- 单行子查询 不反回或返回一行结果的查询
-- 多行子查询 返回0行、一行或多行的查询
select -- 标量子查询 字段子查询
from -- 表子查询(把一个查询结果集视为一张表)
where -- 条件子查询 (子查询返回了两个值,条件用 = 会报错,用in 或 not in)
-- 子查询
select *
from emp e
where sal > ( select avg(sal) from emp);
-- 表子查询
select e.deptno,avg(sal) as avg_sal
from emp e
group by e.deptno;
-- 两个表关联起来就可以看成一张表,通过分组聚合取数
select *
from emp a
join (select e.deptno,avg(sal) as avg_sal from emp e group by e.deptno ) b -- 要给表达式命别名
on a.deptno = b.deptno
where a.sal > b.avg_sal;
-- 标量子查询
select e.*
,(select avg(sal) from emp) as avg_sal
,(select max(sal) from emp) as max_sal
from emp e;
-- 字段子查询这里返回了多个字段
select e.*
,(select avg(sal),max(sal) from emp) as avg_sal
from emp e;
-- 多行子查询
select *
from emp e
where e.sal in ( select sal from emp where ename in ('MARTIN','SCOTT') );
SQL-分组聚合-子查询的更多相关文章
- SQL语句汇总(三)——聚合函数、分组、子查询及组合查询
聚合函数: SQL中提供的聚合函数可以用来统计.求和.求最值等等. 分类: –COUNT:统计行数量 –SUM:获取单个列的合计值 –AVG:计算某个列的平均值 –MAX:计算列的最大值 –MIN:计 ...
- SQL语句汇总(三)——聚合函数、分组、子查询及组合查询
拖了一个星期,终于开始写第三篇了.走起! 聚合函数: SQL中提供的聚合函数可以用来统计.求和.求最值等等. 分类: –COUNT:统计行数量 –SUM:获取单个列的合计值 –AVG:计算某个列的平均 ...
- 1.4(SQL学习笔记)分组、子查询、联结、组合查询
一.分组 建表及数据填充语句下载:链接: https://pan.baidu.com/s/1WHYafwqKJEKq1kDwCH_Zlg 提取码: 3wy4 1.1初识分组 分组是按照某一列,将该列中 ...
- sql之独立子查询和相关子查询总结
1.独立子查询:顾名思义:就是子查询和外层查询不存在任何联系,是独立于外层查询的: 下面就看一个例子: 有一张订单表 Sales.Order 和一张 客户表 Sales.Customer 下面的sql ...
- SQL语句:子查询
一,子查询定义: 子查询就是嵌套在主查询中的查询. 子查询可以嵌套在主查询中所有位置,包括SELECT.FROM.WHERE.GROUP BY.HAVING.ORDER BY. 但并不是每个位置嵌套子 ...
- 【MySQL】-2 函数、分组、子查询、联合查询
函数 Mysql的函数特性没有SQL可移植性强. 大多数情况下支持的函数: 处理文本串的函数: RTrim():处理列值右边的空格 LTrim():处理列值左边的空格 Trim():处理列值的左右 ...
- Linq to SQL 语法整理(子查询 & in操作 & join )
子查询 描述:查询订单数超过5的顾客信息 查询句法: var 子查询 = from c in ctx.Customers where (from o in ctx.Orders group o by ...
- SQL Server 数据库子查询基本语法
一.SQL子查询语句 1.单行子查询 select ename,deptno,sal from emp where deptno=(select deptno ...
- SQL Server 之 子查询与嵌套查询
当由where子句指定的搜索条件指向另一张表时,就需要使用子查询或嵌套查询. 1 子查询 子查询是一个嵌套在select.insert.update或delete语句或其他子查询中的查询.任何允许使用 ...
- SQL优化系列——子查询
sql调优方法: (1)not in子查询优化 尽量避免子查询select * from a where id not in(select id from b); select * from a wh ...
随机推荐
- 成都信息工程大学第八届校赛 H J 题解
H. Bang Bang Keli Ba 题目大意 给定数组 \(a\) ,构造递增序列 \(b\) 和递减序列 \(c\) 且 \(a_i=b_i+c_i\) . 题解 下面证明解的存在性,存在性证 ...
- 第二性 合卷本 横本.PDF
书本详情 第二性台版 作者: 西蒙.德.波娃(Simone de Beauvoir)出版社: 貓頭鷹原作名: Le Deuxième Sexe译者: 邱瑞鑾出版年: 2013-10页数: 1136装帧 ...
- 导出SQL SERVER 数据字典语句
--use YourDatabase --指定要生成数据字典的数据库go SELECT 表名=case when a.colorder=1 then d.name else '' end, 表说明=c ...
- spring 创建 bean 的 几种方式
Spring 创建 bean 有 多种方式: 自动创建,手动创建注入: 方式1: 使用 Spring XML 配置: <bean id=''id class=''class / > 方式 ...
- 使用Wireshark完成实验3-IP
1.使用Wireshark打开ip-ethereal-trace-1,如图 电脑IP地址为192.168.1.102 2.如图,IP包头中上层协议字段的值为1,代表为ICMP 3.如图,IP头中有20 ...
- 【Pr】如何将音频剪成多段批量导出
如何将音频剪成多段批量导出 需要软件: Pr, Adobe Media Encoder (时间线窗口中) 用剃刀将音频割成多段 (时间线窗口中) 选中音频右键 | 嵌套 | 输入名字 (嵌套快捷键:A ...
- JSONObject没有parseObject方法
一定是你引入的包不对,你把上面的import 删掉,重新导入包就可以了. 在这之前加入依赖: ` net.sf.json-lib json-lib 2.4 <dependency> < ...
- 【数据库数据恢复】Oracle数据库数据恢复案例
数据库故障:Oracle数据库的ASM磁盘组掉线,ASM实例不能挂载.管理员尝试修复数据库但是没有成功. 数据库数据恢复方案:数据库数据恢复工程师通过分析组成ASM磁盘组的磁盘底层数据,将ASM元数据 ...
- 国产电源芯片DP4054 软硬件兼容TP4054 规格书资料
DP4054 是一款完整的采用恒定电流/恒定电压单 节锂离子电池充电管理芯片.其SOT小封装和较少的外部元件数目使其成为便携式应用的理想器件,DP4054 可以适合USB 电源和适配器电源工作.跟进口 ...
- 三星电子的KNOX安全技术难以满足企业BYOD控管需求
不可否认的是三星在智能手机领域里的辉煌战绩,三星最近推出了端到端的基于Android平台的解决方案KNOX,并且宣称可以提供从硬件到应用层的多重安全加固. KNOX是否能够延续其在企业领域里辉煌呢?相 ...