MySQL--聚合函数、分组

聚合函数

count 统计总数

select count(*) as 女性人数 from student where gender='女';//查询女性总人数

max最大值

select max(age) as 	年龄最大 from student;
select max(height)  from student where gender='女';//查询最高身高的女性

sum 求和

select sum(age) from student;//所有人的年龄总和

avg 平均值

select avg(age) from student;//所有人的年龄平均值

round 四舍五入 round(123.23,2)小数点保留2位

select round(avg(height),2) from student where gender='男';//计算男性平均身高 保留2位小数

分组 group by

分组一般与聚合函数一起使用
计算每种性别的人数

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

计算男性人数

select gender,count(*) from student where gender='男' group by gender;

group_concat(…)
查询同种性别中的姓名

select gender,group_concat(name) from student where gender='男' group by gender; 
select gender,group_concat(name,"_",age," ",id) from student where gender='男' group by gender; 

having 对分组后 条件再过滤
查询平均年龄超过30岁的性别,以及姓名 having avg(age)>30

select gender,group_concat(name),avg(age) from student group by gender having avg(age) > 30;

查询每种性别中人数多于2个的信息

select gender,group_concat(name) from student group by gender having count(*) >2;

where 与having区别:
where是对原表区过滤判断
having是原表区分组后再过滤判断

发布了49 篇原创文章 · 获赞 3 · 访问量 2085

猜你喜欢

转载自blog.csdn.net/darling_user/article/details/101873855