数据库
首页 > 数据库> > Mysql常用sql语句(12)- group by 分组查询

Mysql常用sql语句(12)- group by 分组查询

作者:互联网

 

前言

 

group by 的语法格式

GROUP BY  <字段名>[,,]

 

确认测试表里有什么数据,方便后面的栗子做对比

 

group by 单字段分组的栗子

对sex单个字段进行分组查询

select * from yyTest group by sex;

知识点

分组之后,只会返回组内第一条数据;具体原理可以看看下图

 

group by 多字段分组的栗子

先按照age进行分组,然后再在每个组内按department分组

select * from yyTest group by age,department;

知识点

 

group by + group_concat()的栗子

group_concat()可以将分组后每个组内的值都显示出来

select department,group_concat(username) as "部门员工名字" from yyTest group by department;

可以看到,按department部门分组 ,然后查看每个部门都有哪些员工的名字;还是很便捷的

 

group by +聚合函数的栗子

有什么聚合函数?

 

具体的栗子

# count统计条数select count(*) from yyTest group by department;

# sum总和select sum(age) from yyTest group by department;

# max最大值select max(age) from yyTest group by department;

# min最小值select min(age) from yyTest group by department;

# 平均值select avg(age) from yyTest group by department;

 

group by + with rollup的栗子

with rollup用来在所有记录的最后加上一条记录,显示上面所有记录每个字段的总和(不懂的直接看栗子)

select GROUP_CONCAT(username) from yyTest group by department with rollup;

select sum(age) from yyTest group by department with rollup;

 

select count(*) from yyTest group by department with rollup ;

 

 

标签:12,group,age,分组,Mysql,department,yyTest,select
来源: https://blog.51cto.com/u_12020737/2847640