MySQL基础学习笔记——分组

分组

  • 分组查询就是将查询结果按照指定字段进行分组,字段中数据相等的分为一组。
# 用法格式
select * from 表名 group by 列名 [having 条件表达式] [with rollup];
  • 列名:指按照指定的字段进行分组;
  • having 条件表达式:用来过滤分组后的数据;
  • with rollup:在所有记录最后加上一行记录,显示select查询时聚合函数的统计的计算结果
group by的使用
  • 说明:group up可以用于单个和多个字段分组
# 根据单位分组
select unit from price group by unit;
# 根据单位和消费额分组:先把单位分组,再把每个单位中的消费额分组
select unit, expenditure from price group by unit, expenditure;
group by + group_concat()使用
  • group_concat(字段名):统计每个分组指定字段的信息集合,每个信息之间使用逗号进行分割。
# 根据单位分组,查询单位和分组的名称信息
select unit, group_concat(name) from price group by unit;

# | unit         | group_concat(name)        |
# | 元/盘        | 蒜苔炒肉,粉条炒肉          |
group by + 聚合函数的使用
// 计算不同单位对应的记录数
select unit, count(*) from price group by unit;
// 计算不同单位对应的平均单价
select unit, avg(price) from price group by unit;
group by + having的使用
  • having作用和where类似都是过滤数据的,但having是过滤分组数据的,只能用于group by
# 根据unit进行分组,统计分组条数大于2的
select unit, count(*) from price group by unit having count(*)>2;
group by + with rollup的使用
  • with rollup的作用:在最后的记录后面新增一行,显示select查询时聚合函数的统计和计算结果。
# 根据单位字段进行分组,汇总总记录数
select unit, count(*) from price group by unit with rollup;
# 根据单位字段进行分组,汇总消费总额
select unit, sum(expenditure) from price group by unit with rollup;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鬼义II虎神

打赏5C币,作者可获得4C币

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值