SQL的执行顺序与聚集函数

本文详细解析了SQL SELECT语句的执行流程,包括FROM、WHERE、GROUP BY、HAVING、ORDER BY等子句的执行顺序,并通过实例说明。同时,介绍了MySQL中的常用聚集函数如COUNT、AVG、MAX、MIN、SUM及DISTINCT的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文参考:https://blog.youkuaiyun.com/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的行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值