MySQL 学习总结-聚合函数总结

常用的聚合函数
  • group by 字段 :
    按字段将记录分组,通常和其它的函数联合使用,group by 操作后,返回每一组的第一条记录

  • order by:根据指定字段进行排序,默认升序(asc)排序,可以指定多个排序字段,按照字段先后分别排序。
    ps:汉字拼音排序 GBK编码可以直接按拼音排序,UTF-8需要转GBK再排

--例子: 查询全体学生的情况,查询结果按所在系升序排列,对同一系中的学生按年龄降序排列。
SELECT * FROM student ORDER BY convert(系名 using gbk)  ASC,年龄 DESC
  • sum(expr):求和
-- 一个可以记住的例子
-- 查询存在两门(包含两门)以上课程不及格的学生的平均分
-- sum实现
SELECT name,平均分 from
( SELECT name,avg(score) 平均分, sum(score<60) 挂科数目 FROM stu GROUP BY name HAVING 挂科数目>=2) tt;
  • avg(expr):求平均数

  • count(expr):计数器,返回SELECT语句检索到的行中非NULL值的数目
    count(NULL) 结果为0,count(*)可以避免检索到NULL值得情况

-- 另一个可以记住的例子,题目跟sum例子相同
-- 查询存在两门(包含两门)以上课程不及格的学生的平均分
-- count实现
SELECT name,avg(score) 平均分 FROM stu WHERE 
(
    SELECT COUNT(score) FROM stu stu2 
    WHERE stu.name=stu2.name and stu2.score<60
)>=2 
GROUP BY stu.name 
  • max(expr) 获取最大值

  • min(expr) 获取最小值

  • GROUP_CONCAT(expr):按照分组,将expr字符串按逗号分隔,组合起来

SELECT name, GROUP_CONCAT(score)FROM stu GROUP BY name;

结果截图:
这里写图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值