如果需要到数据集市进行汇总统计,需要使用GROUP BY + 聚合函数来实现。

MySQL中的聚合函数

聚合函数作用
COUNT()返回某列的行数。
MIN()返回某列的最小值。
MAX()返回某列的最大值。
AVG()返回某列的平均值。
SUM()返回某列的值的和。

COUNT()函数

语法如下:

select [字段1,字段2,...,]count(*|字段名|常量值) 
from 表名 
[where子句] 
[GROUP BY 字段1,字段2,...];

当count(*)时,计算的是全部的数量;

当count(字段名)时,字段值中的NULL值,不计算在内;

当count(常量值)时,使用任意一个除NULL之外的常量值,计算的都是全部的数量;

示例:

查询学生的总数量:

select count(*) from school.student;
select count(student_id) from school.student;
select count(1) from school.student;
select count('d') from school.student;

查询男同学的数量:

select count(*) from school.student where gender = '男';

查询年龄在10岁以下的男同学的数量:

select count(*) from school.student where age < 10 and gender = '男';

查询每个老师教授的学生的数量:

select teacher_id,count(*) from school.student group by teacher_id;

查询每个老师教授的不同性别的学生的数量:

select teacher_id,gender,count(*) from school.student group by teacher_id,gender;

MIN()函数

语法如下:

select [字段1,字段2,...,]min(*|字段名|常量值) 
from 表名 
[where子句] 
[GROUP BY 字段1,字段2,...];

示例:

查询所有学生的最小年龄:

select min(age) from school.student;

查询男同学的最小年龄:

select min(age) from school.student where gender = '男';

查询不同性别的学生的最小年龄:

select gender,min(age) from school.student group by gender;

MAX()函数

语法如下:

select [字段1,字段2,...,]max(*|字段名|常量值) 
from 表名 
[where子句] 
[GROUP BY 字段1,字段2,...];

示例:

查询所有学生的最大年龄:

select max(age) from school.student;

查询男同学的最大年龄:

select max(age) from school.student where gender = '男';

查询不同性别的学生的最大年龄:

select gender,max(age) from school.student group by gender;

AVG()函数

语法如下:

select [字段1,字段2,...,]avg(*|字段名|常量值) 
from 表名 
[where子句] 
[GROUP BY 字段1,字段2,...];

示例:

查询所有学生的平均年龄:

select avg(age) from school.student;

查询男同学的平均年龄:

select avg(age) from school.student where gender = '男';

查询不同性别的学生的平均年龄:

select gender,avg(age) from school.student group by gender;

SUM()函数

语法如下:

select [字段1,字段2,...,]sum(*|字段名|常量值) 
from 表名 
[where子句] 
[GROUP BY 字段1,字段2,...];

示例:

查询所有学生的总分:

select sum(age) from school.student;

查询男同学的总分:

select sum(age) from school.student where gender = '男';

查询不同性别的学生的总分:

select gender,sum(age) from school.student group by gender;
picture loss