2023-11-11 第08章_聚合函数

2023-11-12  本文已影响0人  大也

一.聚合函数类型
AVG() SUM() MAX() MIN() COUNT()
二.执行过程
SELECT [DISTINCT]...,....,...
FROM ... JOIN ...
ON 多表的连接条件
JOIN ...
ON ...
WHERE 不包含组函数的过滤条件
AND/OR 不包含组函数的过滤条件
GROUP BY ...,...[ WITH ROLLUP;]
HAVING 包含组函数的过滤条件
ORDER BY ... ASC/DESC
LIMIT ...,...

(1)from:从哪些表中筛选

(2)on:关联多表查询时,去除笛卡尔积

(3)where:从表中筛选的条件

(4)group by:分组依据

-- 4.1 WITH ROLLUP;在所有查询出的分组记录之后增加一条记录,该记录计算查询出的所有记录的总和,即统计记录数量。

(5)having:在统计结果中再次筛选

(6)order by:排序

(7)limit:分页

(7) DISTINCT:去除重复

注意事项
1.WHERE一定放在FROM后面
2.当使用ROLLUP时,不能同时使用ORDER BY子句进行结果排序,即ROLLUP和ORDER BY是互相排斥 的。

  1. HAVING 使用条件. 使用了聚合函数。不能单独使用,必须要跟 GROUP BY 一起使用。

整个selected 执行顺序 底层运行的原理,就是执行顺序
FROM -> WHERE -> GROUP BY -> HAVING -> SELECT 的字段 -> DISTINCT -> ORDER BY -> LIMIT

多表联查 2张表 FROM会增加这些步骤 多张重复这个步骤
FROM 先通过 CROSS JOIN 求笛卡尔积,相当于得到虚拟表 vt
ON 进行筛选,在虚拟表 vt1-1 的基础上进行筛选,得到虚拟表 vt1-2
如果我们使用的是左连接、右链接或者全连接,就会涉及到外部行,也就是在虚拟表 vt1-2 的基础上增加外部行,得到虚拟表 vt1-3。

上一篇 下一篇

猜你喜欢

热点阅读