数据分组
分组的实现
分组一般需要配合聚合函数使用
语法:group by 字段名
select 聚合函数 from 表名 group by 字段
select 聚合函数 from 表名 where 条件 group by 字段
select 分组字段, 聚合函数 from 表名 where 条件 group by 字段
group by 一般是配合聚合函数使用的
单字节分组
– 分别查询男女同学的数量
SELECT count() from student where sex = ‘男’;
SELECT count() from student where sex = ‘女’;
SELECT
sex,
count(*)
FROM
student
GROUP BY
sex;
– 分别查询 3班 不同性别学生数量
SELECT
sex,
count(*)
FROM
student
WHERE
class = 3
GROUP BY
sex;
多字节分组
分组后的排序
select 分组字段, 聚合函数 from 表名 where 条件 group by 字段 order by 字段
– 分别查询不同班级不同性别的成年学生数量, 按班级降序
SELECT
class,
sex,
count(*)
FROM
student
where age>18
GROUP BY
class,
sex
ORDER BY
class desc;
分组后数据筛选
group by 字段 having 条件
用where查询男生总数
where先筛选复合条件的记录,然后在聚合统计
SELECT count(*) from student where sex = ‘男’;
用having查询男生总数
having先分组聚合统计,在统计的结果中筛选
SELECT count(*) from student GROUP BY sex HAVING sex = ‘男’;
having 配合聚合函数的使用
求班级人数大于3人的班级名字
SELECT
class
FROM
student
GROUP BY
class
HAVING
count(*) > 3;