数据库中的分组
2016-03-03 21:02
211 查看
数据库分组的作用
分组是数据库中数据统计的一个重要功能,所谓分组就是将数据库查询得到的结果以某些字段作为分割条件将查询结果分成多组,然后我们就可以对每一组数据应用各种统计函数比如max,count等等。例子
为了简化起见我们这里就使用一个表student表,建表和插入语句如下:
create table student( id int PRIMARY key AUTO_INCREMENT, name VARCHAR(200), sch_name varchar(200), age int ); insert into student(sch_name,name,age) values('合肥工业大学','张三',23); insert into student(sch_name,name,age) values('合肥工业大学','李四',24); insert into student(sch_name,name,age) values('合肥工业大学','王五',22); insert into student(sch_name,name,age) values('合肥工业大学','王鹏',19); insert into student(sch_name,name,age) values('安徽大学','罗田',26); insert into student(sch_name,name,age) values('安徽大学','刘正',21); insert into student(sch_name,name,age) values('安徽大学','刘备',23); insert into student(sch_name,name,age) values('安徽大学','孙权',19); insert into student(sch_name,name,age) values('安徽大学','曹操',22); insert into student(sch_name,name,age) values('中国科技大学','诸葛亮',28); insert into student(sch_name,name,age) values('中国科技大学','张飞',26); insert into student(sch_name,name,age) values('中国科技大学','关羽',25);
首先看下分组的形象概念,假设我们使用group by sch_name来查询,此时我们可以理解为得到如下的数据:
现在我们看一下以下几个统计的例子
查询出每个学校及学校学生的人数select sch_name ‘校名’,count(*) ‘学生总数’ from student group by sch_name
查询每个学校的平均年龄
select sch_name ‘校名’,avg(age) ‘平均年龄’ from student group by sch_name
查询每个学校年龄最大的同学和年龄最小的同学的年龄
select sch_name ‘校名’,max(age) ‘最大年龄’,min(age) ‘最小年龄’ from student group by sch_name
4.统计每个学校的学生姓名,注意使用group_concat函数
select sch_name ‘校名’,group_concat(name) ‘姓名组’ from student group by sch_name
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- 数据库链接字符串查询网站
- DB2实例管理
- DB2实例管理
- 保障MySQL数据安全的14个最佳方法
- mysql问答汇集
- 第三章 数据库备份和还原
- 创建一个空的IBM DB2 ECO数据库的方法
- Access 2000 数据库 80 万记录通用快速分页类
- 开通一个数据库失败的原因的和解决办法
- 一个简单的asp数据库操作类
- CentOS下DB2数据库安装过程详解
- EasyASP v1.5发布(包含数据库操作类,原clsDbCtrl.asp)第1/2页
- sql2008 还原数据库解决方案
- Oracle 数据库自动存储管理-安装配置
- Oracle数据库执行脚本常用命令小结
- Oracle 数据库 临时数据的处理方法
- 数据库分页查询语句数据库查询
- 最近比较流行的数据库挂马