SQL的执行顺序与聚集函数

it2022-07-04  138

本文参考:https://blog.csdn.net/anguowei/article/details/78391161 一、SQL SELECT语句的执行顺序: 1.from子句组装来自不同数据源的数据; 2.where子句基于指定的条件对记录行进行筛选; 3.group by子句将数据划分为多个分组; 4.使用聚集函数进行计算; 5.使用having子句筛选分组; 6.计算所有的表达式; 7.使用order by对结果集进行排序; 8.select 集合输出。

注:如果使用了连接join和on,则会在where执行之前先执行on,然后执行join,接着才去执行where

举个例子:

select 考生姓名, max(总成绩) as max总成绩 from tb_name where 考生姓名 is not null group by 考生姓名 having max(总成绩) > 600 order by max总成绩

在上面的示例中 SQL 语句的执行顺序如下: 1.首先执行 FROM 子句, 从 tb_name 表组装数据源的数据 2.执行 WHERE 子句, 筛选 tb_name 表中所有数据不为 NULL 的数据 3.执行 GROUP BY 子句, 把 tb_name 表按 “学生姓名” 列进行分组 4.计算 max() 聚集函数, 按 “总成绩” 求出总成绩中最大的一些数值 5.执行 HAVING 子句, 筛选课程的总成绩大于 600 分的. 6.执行 ORDER BY 子句, 把最后的结果按 “Max 成绩” 进行排序

二、MySQL中的聚集函数 1、count()返回某列的行数 2、avg()返回某列的平均值 3、max()返回某列的最大值 4、min()返回某列的最小值 5、sum()返回某列的和 6、distinct 去除重复值 注:avg()忽略值为null的行,count(*)时统计所有行,count(列)时忽略为null的行


最新回复(0)