Mysql-分组查询
-- 分组
-- group by
-- 按照性别分组,查询所有的性别
-- 按照字段分组,就可以直接查询什么字段
select gender from student group by gender;
-- 计算每种性别中的人数
select gender,count(0) from student group by gender;
-- group_concat(...)
-- 查询同种性别中的姓名
select gender,group_concat(name) from student group by gender;
-- 查询每组性别的平均年龄
select gender,avg(age) from student group by gender;
-- 查询平均年龄超过30岁的性别, 以及姓名 having avg(age)> 30(重点)
-- having 是对每个组中的数据进行筛选和group by 联合使用
-- where 是对所有的数据进行筛选
select gender,group_concat(name) from student group by gender having avg(age)>30;
-- 查询每种性别的平均年龄和名字
select gender,avg(age),group_concat(name) from student group by gender;
-- 查询每种性别中的人数多于2个的性别和姓名(重点)
select gender,group_concat(name) from student group by gender having count(*)>2;
-- with rollup 汇总作用
select gender,count(*) from student group by gender with rollup;
表取自:
Mysql-几张供于学习的表 - 夜黎i - 博客园 (cnblogs.com)
浙公网安备 33010602011771号