第六章:数据库聚合函数的使用和分组group

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40667484/article/details/85017254

上一章:第五章:数据库范围查询和排序


聚合函数(count,max,min,sum,avg)

聚合函数的作用:计算总数,最大值,最小值,总和,平均值

总数(count函数)

代码:

select count(*) as 男性个数 from students where gender=1;//gender=1条件
select count(*) as 女性个数 from students where gender=2;//gender=2条件
select count(*) as 中性个数 from students where gender=3;//gender=3条件
select count(*) as 保密个数 from students where gender=4;//gender=4条件

如图:以男性个数为例
在这里插入图片描述


最大值(max函数)

代码:

select max(age) from students;

在这里插入图片描述
代码成果

在这里插入图片描述


最小值(min函数)

代码:

select min(age) from students;

在这里插入图片描述


求和(sum)

代码:

select sum(age) from students;

如图:
在这里插入图片描述

平均值(avg)
代码:

select avg(age) from students;

如图:
在这里插入图片描述


重合使用多个函数

计算平均id值

代码:

select sum(id)/count(*) as 平均idfrom students;

如图:
在这里插入图片描述


四舍五入 round(123.23,1) 保留一位小数 不能用在银行哈

代码:

select round(sum(id)/count(*),3) as 平均idfrom students;

如图:
在这里插入图片描述
总结

select后面可以放字段,表达式(加减乘除),特殊字符(*)


分组

分组和聚合函数一起用,不然没啥作用
group by 字段
与distinct(去重)有区别
group by把相同的归为一类,输出是多个
distinct把相同的去掉到只剩一个,输出一个

先分组再在组内使用数据

代码:

select gender from students group by gender;

如图:
在这里插入图片描述


统计组内数据每个小组的最大年龄 这里小分组是指男,女,中性,保密四个小组

代码:

 select gender,max(age) from students group by gender;

如图:
在这里插入图片描述


统计组内数据每个小组的总数

代码:

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

如图:
在这里插入图片描述


统计组内数据所有的名字(group_concat()函数)

concat()内可以写任何字符串 都会输出,用来统计组内所有数据

代码:

  select gender,group_concat(name) from students group by gender;

如图:
在这里插入图片描述


统计组内男性个数

代码:

select gender,count(*) from students where gender=1 group by gender;

如图:
在这里插入图片描述


统计组内男性名字,年龄,id

代码:

select gender,group_concat(name,"_",age," ",id) from students where gender=1 group by gender;

如图:
在这里插入图片描述
写什么有什么前提是字符串


having方法

having是对分组进行条件判断而不是对结果
达到过滤数据的作用,查找想要的数据的作用
与where有区别
having是对组的结果进行操作,在group后面
where是对原表进行操作,在group前面

查询平均年龄超过并等于20随的性别和姓名

代码:

select gender,group_concat("名字是",name," ""年龄是",age,"\n") from students group by gender having avg(age)>=20;//注意用了having

如图:
在这里插入图片描述

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

代码:

select gender,count(*) as 人数 from students group by gender having count(*)>2;

如图:
在这里插入图片描述


下一章:第七章:数据库的分页操作和链接查询

猜你喜欢

转载自blog.csdn.net/qq_40667484/article/details/85017254