MySQL是一种常用的关系型数据库管理系统(RDBMS),在数据处理和分析中广泛应用。MySQL提供了许多聚合函数,用于对数据进行分组并返回总和、平均值、最大值、最小值等结果。
SELECT 函数名称(列名) FROM 表名;
下面我们将介绍七个常用的MySQL聚合函数:
AVG(): 返回指定列的平均值。MAX(): 返回指定列的最大值。MIN(): 返回指定列的最小值。SUM(): 返回指定列的总和。COUNT(): 返回指定列的行数。COUNT(DISTINCT 列名): 返回指定列不同值的行数。GROUP_CONCAT(): 返回指定列的所有值,以逗号分隔。
下面我们通过一个简单的例子来演示这些函数的用法:
CREATE TABLE students (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(20),age INT,gender VARCHAR(5),score INT);INSERT INTO students (name, age, gender, score)VALUES('张三', 18, '男', 90),('李四', 19, '女', 80),('王五', 20, '女', 85),('赵六', 21, '男', 95),('孙七', 22, '女', 75);
假设我们要统计学生表中男生的平均分、女生的最高分、各个年龄段的学生人数和所有学生的总分数,可以这样查询:
SELECTAVG(score) AS 男生平均分,MAX(score) AS 女生最高分,COUNT(*) AS 学生总数,SUM(score) AS 总分数FROMstudentsWHEREgender = '男' OR gender = '女'GROUP BYgenderWITH ROLLUP;
该查询将按照性别分组计算平均分和最高分,并统计学生总数和总分数。其中,GROUP BY子句指定按照gender列分组,WITH ROLLUP子句指定在结果集中添加小计行和总计行。
另外,COUNT()函数可以用于统计指定列不同值的行数。例如,我们可以用COUNT(DISTINCT age)来统计不同年龄的学生数:
SELECT COUNT(DISTINCT age) FROM students;
最后一个函数是GROUP_CONCAT(),它可以返回指定列的所有值,以逗号分隔。例如,我们可以用GROUP_CONCAT(name)来列出所有学生的姓名:
SELECT GROUP_CONCAT(name) FROM students;
总之,MySQL的聚合函数大大简化了数据处理和分析的过程,使我们能够更快捷地了解数据的特点和规律。掌握这些函数的用法对于日常工作和学习都非常有帮助。