有如下数据: 一个简单的分组查询的案例 按照部门编号deptno分组,统计每个部门的平均工资。 select deptno,avg(sal) avgs from emp group by deptno; 结果如下: gro
有如下数据:
按照部门编号deptno分组,统计每个部门的平均工资。
select deptno,avg(sal) avgs
from emp
group by deptno;
结果如下:
group by
是用于分组查询的关键字,一般是配合sum(),avg(),count(),max(),min()
聚合函数使用的。也就是说sql语句中只要有group by
,那么在select后面的展示字段中一般会有聚合函数(5个聚合函数
)中的一个或多个函数出现。观察上图用表中的字段A进行分组后,一般就需要对表中的其它字段,使用聚合函数,这样意义更大,而不是还对字段A使用聚合函数。
当SQL语句中使用了group by
后,在select后面一定有一个字段使用了聚合函数(5个聚合函数
)。但是除了这个聚合函数,select后面还可以添加其他什么字段吗?
答案肯定是可以的!但是该字段有一定的限制,并不是什么字段都可以。也就是说,当SQL语句中使用了group by
关键字后,select后面除了聚合函数,就只能是group by
后面出现的字段。也就是图中的字段A
,select后面只能存在group by
后面的字段。
select deptno,sum(sal)
from emp
where ename like "%S%"
group by deptno;
select deptno,avg(sal)
from emp
where sal > 2000
group by deptno;
select deptno,count(*)
from emp
group by deptno
haveing count(*) > 3;
select deptno,max(sal) maxs
from emp
group by deptno
having maxs count(*) > 3;
select deptno,avg(sal) avgs
from emp
where year(hiredate) = "1981"
group by deptno
having avgs > 2000;
select length(ename) len, count(*) counts
from emp
group by len
having counts > 3;
select deptno,jop,avg(sal) avgs
from emp
group by deptno,job;
select deptno,jop,avg(sal) avgs
from emp
group by deptno
order by avgs desc;
select deptno,jop,avg(sal) avgs
from emp
group by deptno
order by avgs asc;
having
子句中。where
筛选)group by
子句支持单个字段分组,多个字段分组(多个字段之间用逗号隔开没有顺序要求),还支持函数分组(用的较少)。--结束END--
本文标题: MySQL之group by分组查询
本文链接: https://www.lsjlt.com/news/8722.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0