分组函数与分组查询回顾

1. 数据处理函数(单行处理函数)

函数名称描述
lower转换小写
upper转换大写
substr截取字符串
length区长度
trim去空格
str_to_date将字符串转换成日期
date_format格式化日期
format设置千分位
round四舍五入
rand()生成随机数
ifnull可以将null转换成一个具体值

2. 分组函数(多行处理函数)

函数名称描述
count()计数
sum()求和
avg()平均值
max()最大值
min()最小值

注意点

  • 分组函数在使用的时候必须先进行分组,然后才能用。如果没有对数据进行分组,整张表默认为一组
  • 分组函数不能够直接使用在where子句中
  • 分组函数会自动忽略null值
    在这里插入图片描述
    where执行的时候,还没有进行分组,所以不能在子句中使用分组函数,这与语句的执行顺序有关

使用示例
在这里插入图片描述
在这里插入图片描述
count(*) 与 count(具体字段)的区别

  • count(某字段):统计某个字段不为null的数量
  • count(*):统计整张表每行中不全为null的数量

分组函数可以联合使用
在这里插入图片描述

3. 分组查询(group by)

使用模板 select ... from 表名 group by(某些字段)

函数的执行顺序
select ... from ... where ... group by ... order by...

普通分组

使用示例
在这里插入图片描述
查询每个人的money总和
在这里插入图片描述
在这里插入图片描述

执行顺序
(1) 通过group by将整张表以userName的方式分组 相当于整张表拆分成了3张表(组)(小明表、小红表、小丑表)
(2) 对分组后的每一组的money求和
(3) 对拆分后的每一组使用select语句查询出一条记录,然后将每组的一行记录合并在一起,就是最后的结果

联合分组

在这里插入图片描述
在这里插入图片描述

4. 分组后的过滤(having)

使用having语句可以对分完组后的数据继续过滤

所以having不能单独使用,也不能代替where,having必须和group by联合使用

方式① 先分组,后having条件过滤
在这里插入图片描述
方式② 先过滤 再分组
在这里插入图片描述
使用策略:where和having,优先选择where,当where解决不了时,再使用having

where不能解决的查询问题

比如需要先使用分组函数筛选再分组的情况
在这里插入图片描述
条件查询的总结
在这里插入图片描述
综合使用案例
在这里插入图片描述
( emp表的截图来自老杜的视频)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值