MySQL中group by分组和聚合函数
在SQL查询中,最常用到、不可避免的两大知识点,一个就是表连接(join),包括左连接、右连接、内连接,另一个就是函数(function),大部分业务场景都需要用到函数,函数包括基本函数、窗口函数和自定义函数,其中基础函数有日期函数、字符串函数和聚合函数等。本篇要讲的是基础且重要的聚合函数。
一、什么是聚合函数?
聚合函数是指对一组值执行计算并返回单一的值的一类函数,它们通常与GROUP BY子句一起使用,将数据集分组为子集。除了COUNT 以外,聚合函数忽略空值,也就是说使用聚合函数时null值不参与计算,如果COUNT函数的应用对象是一个确定列名,并且该列存在空值,此时COUNT仍会忽略空值。在Mysql 8.0官方手册中总共有以下19个聚合函数:
二、聚合函数怎么使用?
1.select关键字后面
2.having关键字后面
3.order by关键字后面
但不可用于WHERE语句中,因为WHERE是对逐条的行记录进行筛选,不是一组值。
下面以经典的学生成绩表来举例:
select s_id,avg(score)
from score
group by s_id