分组统计

1、统计函数(分组函数)

常用函数一般有五个:COUNT()、SUM()、MIN()、MAX()、AVG()

以上几个操作函数,在表中没有数据的时候,只有COUNT()函数会返回结果(返回0),其他都是NULL。

实际上针对于COUNT()函数有三种使用形式:

  ①COUNT(*):可以准确地返回表中的全部记录数;

  ②COUNT(字段):统计不为null的所有数据量;

  ③COUNT(DISTINCT 字段):消除重复数据之后的结果。

2、分组统计




    实际上GROUP BY之所以使用麻烦,是因为分组的时候有一些约定条件:

①如果查询不使用GROUP BY子句,那么select子句中只允许出现统计函数,其他任何字段不允许出现;


②如果查询中使用了GROUP BY子句,那么select子句中只允许出现分组字段、统计函数,其他任何字段都不允许出现;

③统计函数允许嵌套,但是嵌套之后的select子句里面只允许出现嵌套函数,而不允许出现任何字段,包括分组字段。


3、多表查询与分组统计

    对于GROUP BY 子句而言是在WHERE之后执行的,所以在使用时可以进行限定查询,也可以进行多表查询。

4、HAVING子句

    where子句上不允许出现统计函数(分组函数),因为GROUP BY子句是在WHERE子句之后执行的,那么此时执行WHERE子句时还没有进行分组,就自然无法进行统计。所以在这样的情况下就必须使用HAVING子句来完成。


HAVING是在GROUP BY分组之后才执行的筛选,在HAVING里面可以直接使用统计函数。

说明:WHERE与HAVING的区别:

    WHERE子句是在GROUP BY分组之前进行筛选,指的是选出那些可以参与分组的数据,并且WHERE子句之中不允许使用统计函数;

    HAVING子句是在GROUP BY分组之后执行的,可以使用统计函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值