数据库学习(九)

分组查询 --group by

语法:select f1...... from table_name where 条件 group by f;
f表示要根据f列进行分组
说明:在进行分组查询的时候,分组所依据的f列上的值要有一定的重复性,否则分组没有什么意义
--》查询表,按照部门号对所有员工进行分组
select * from t_employee group by deptno;
group by deptno是按照部门进行分组,分组后只是显示该组的一条数据显示出来了
所以这种简单的分组查询操作,没有任何实际意义的,建议与函数一起使用

和统计函数一起使用的方法的语法:
select function(f1) ,function(f2)... from table_name where 条件 group by f;
按照部门号对所有员工进行分组,查询显示每组中的员工名和每组中的员工个数
select deptno,count(ename),group_concat(ename) from t_employee group by deptno;
group_concat()显示每个分组中指定的字段值

分组查询操作 -- 根据多字段

语法:select function(f1),function(f2).....
说明:首先会按照field1进行分组。然后针对每组按照field2进行分组,以此类推
--》
查询表,首先按照部门号对所有员工进行分组,然后按照生日对每组的员工再分组,同时显示每组的员工和个数
select ename,Hiredate,deptno from t_employee;

select deptno,Hiredate,group_concat(ename),count(ename) from t_employee group by deptno,Hiredate;
发布了90 篇原创文章 · 获赞 37 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_25368751/article/details/102918850