牛骨文教育服务平台(让学习变的简单)
博文笔记

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

创建时间:2016-07-27 投稿人: 浏览次数:3613

常用的聚合函数

  • 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;

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

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。