mysql中group by 分组函数详解 及 查询总结

官方定义:

分组: 按照某一列或者某几列。把相同的数据,进行合并输出。
完整写法:
select … from … group by 列名,列名

注意:
1、聚合函数:分组之后进行计算;
2、通常 select后面的内容是被分组的列,以及聚合函数;
分组有一个特点:
一旦使用了分组函数,那么最终在显示的时候,只能显示被分组的列或者聚合函数。

group by 与 having 的用法

在sql语句中的where 后面不允许添加聚合函数,添加就会报错。

关于 having 的用法解释:
表示分组之后的条件,在having后面可以书写聚合函数。
having和group by 一起使用,having和where的用法一模一样,where怎么使用having就怎么使用,where不能使用的,having也可以使用,比如说where后面不可以使用聚合函数,但是在having后面是可以使用聚合函数的。

where 与 having 的区别

1、having 通常与group by 分组结合使用。 where 和分组无关。
2、having是从筛选出来的字段再筛选,而where是从数据表中的字段直接进行的筛选的。
3、where 后面的条件可以写在having 中,但是 having中的条件不一定能写在where中。
having 可以书写聚合函数 (聚合函数出现的位置: having 之后)
例如having中的 聚合函数(count,sum,avg,max,min),是不可以出现where条件中。
4、where 是在分组之前进行过滤的。having 是在分组之后进行过滤的。

查询总结:

Count(字段) 作用 统计个数
Sum(字段) 作用 求和运算
Avg(字段) 作用 求平均值
Max(字段) 作用  求最大值
Min(字段) 作用 求最小值
Group by 作用  分组查询
Having 作用  关联条件 与where一样  只是支持聚合函数的使用!!!
查询关键字的出现的顺序是固定的

select …要显示的内容.. from …表名.. where  条件…. group by …分组的列 …having …分组后的条件… order by …排序

select …5… from …1..  where …2.. group by ..3…having ..4… order by .6.

查询的执行顺序:
1)from : 表名         
2)where:条件过滤
3)group by : 分组
4)having : 分组之后进行过滤。
5)select :执行完毕之后,显示内容。
6)order by : 根据查询的内容进行排序输出.
from 表名

where 条件:
	  逻辑运算符:and or not
	  比较运算符:> < >= <= <> = !=
	  在....之间:between...and
	  in():	只要在in(值1,值2...)满足任意一个值就可以 类似java switch
	  模糊匹配:like %任意个 _一个字符
is null/is not null
	  
group by 列:对列进行分组。

having 条件:
	  逻辑运算符:and or not
	  比较运算符:< > <= >= <> =
	  在....之间:between...and...
	  in(set)
	  is null/is not null
	  模糊匹配:like % _
Having 后 可以跟聚合函数 不使用聚合函数用where
	  聚合函数(sum,avg,max,min,count)
Where跟的条件 having都可以  而且 having还可以跟 聚合函数 where不可以  having单独使用的时候的条件在查询中的字段必须包含!!!
	  
order by desc(降序)/asc(升序,默认)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值