第六章: 聚合查询 与 分组

                               第六章:  聚合查询  与 分组


概述
在查询分析的SQL中我们经常会对一些数据进行统计查询。比如统计某个班有多少个学生、全班总分多少、平均分多少、最高分是多少、最低分是多少。要实现这些数据的统计就需要要用到SQL提供的聚合函数。

聚合函数的分类
COUNT:统计行数量
SUM:获取单个列的合计值
AVG:计算某个列的平均值
MAX:计算列的最大值
MIN:计算列的最小值

注: 聚合函数不能与其他列搭配使用只能单列使用

执行行和列计数(COUNT)
行计数可以统计返回的结果中有多少行数据
标准结构:SELECT COUNT(<计数规范>) FROM <表名>
* 计数所有选择的行,包括NULL值
ALL  列 计数指定列的所有的非空值行。如果仅仅是指定列而不带ALL或者DISTINCT,这是默认操作。
DISTINCT  列 计数指定列的所有唯一非空值行。


计数规范(*)
* 表示统计所有行,包括NULL值。
举例
统计班上一共有多少个学生
SELECT COUNT(*) FROM t_student
也可以加入查询条件。例如:统计男生有多少人?
SELECT COUNT(*) FROM t_student WHERE 性别=‘男

——返回列合计值(sum)
语法:select sum(计数规范) from  表名;
与count的区别:没有*,只能是求整型,和浮点数;

——获取列的平均值(avg)
语法:select   avg (平均值规范 )from 表名;
注;会过滤掉null的值,可以使用all 和distinct

——返回最大值和最小值:
语法:select max(或min)<最大(小)值规范> from  表名;
注:会排除为null的值,没有  *  ,all ,distinct

 ——数据分组:group  by
  语法:select   列A,聚合函数(聚合函数规范) from  表名
where  过滤条件
group  by  列;

注 : where  后面不能跟聚合函数!!!!

——使用having:
注:后面跟聚合函数语句

sql语句的执行顺序:
select子句;
from 子句;
where子句;
group by 子句;
having 子句;
Oder   by 子句;
limit 子句;

where与having的区别:二者都是过滤条件,where是分组前运行(过滤非聚合函数);having 是在分组后运行(只能用于聚合函数的过滤);



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值