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)

 

 

posted on 2023-02-01 11:24  夜黎i  阅读(84)  评论(0)    收藏  举报

导航