sql语句中group by使用
1,数据源
表A结构如下:
CREATE TABLE C
(
ID INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
classid INT,
sex VARCHAR(10),
age INT
)
--添加测试数据
Insert into C(classid,sex,age) values(1,'男',20)
Insert into C(classid,sex,age) values(2,'女',22)
Insert into C(classid,sex,age) values(3,'男',23)
Insert into C(classid,sex,age) values(4,'男',22)
Insert into C(classid,sex,age) values(1,'男',24)
Insert into C(classid,sex,age) values(2,'女',19)
Insert into C(classid,sex,age) values(4,'男',26)
Insert into C(classid,sex,age) values(1,'男',24)
Insert into C(classid,sex,age) values(1,'男',20)
Insert into C(classid,sex,age) values(2,'女',22)
Insert into C(classid,sex,age) values(3,'男',23)
Insert into C(classid,sex,age) values(4,'男',22)
Insert into C(classid,sex,age) values(1,'男',24)
Insert into C(classid,sex,age) values(2,'女',19)
2,group by
sql语句中,select classid from A group by classid,首先从表A中查询出所有记录,再将记录按照classid分类,每一类为一条记录。
能否显示其他字段呢?select classid,age from A group by classid,这样不可以的,因为按照classid分类,每一类classid记录中classid是相同的,对应一条记录,但是age不一定相同,一次一条记录无法显示多个age。因此不可以显示age字段,此处会出错。但是我们可以显示相同classid字段所有记录的平均年龄,这样就是多条记录缩减为一条记录,这就是聚合函数。如:select classid,avg(age) from A group by classid,这是可以的。
3,group by 多个条件
如果group by后面多个条件,比如字段a1和a2,则将查询的所有记录,根据a1和a2分为k类显示。即a1+a2是一个新的字段。
4,如果需要对每个分组中记录做条件筛选,需要使用having。
我们首先根据where条件,将数据集select出来。之后跟group by结果集分组,之后利用having去除每个分组中不符合条件的记录。
having后面经常跟聚合函数,聚合函数不能跟在where后面,只能跟在having后面。
sql语句中group by使用的更多相关文章
- (转载)SQL语句中Group by语句的详细介绍
转自:http://blog.163.com/yuer_d/blog/static/76761152201010203719835 SQL语句中Group by语句的详细介绍 ...
- 转:sql语句中GROUP BY 和 HAVING和使用 count()
在开发时,我们经常会遇到以“累计(count)”或是“累加(sum)”为条件的查询.比如user_num表: id user num 1 a 3 2 a 4 3 b 5 4 b 7 例1:查询出现 ...
- sql语句中GROUP BY 和 HAVING的使用 count()
在介绍GROUP BY 和 HAVING 子句前,我们必需先讲讲sql语言中一种特殊的函数:聚合函数, 例如SUM, COUNT, MAX, AVG等.这些函数和其它函数的根本区别就是它们一般作用在多 ...
- SQL语句中GROUP BY的问题
今天查询数据库时用到集合函数sum(drp),遇到问题: 百度后,确定如下问题:当select后面查询字段有sum(drp)以外的字段时,必须使用group by函数,对数据进行排序,且查询字段中除s ...
- 转>>在同一个sql语句中如何写不同条件的count数量
今天在做Portal中的Dashboard展现的时候,需要对多个统计字段做展现,根据我现在的掌握水平,我只能在sql调用构建器中实现一种sql语 句返回的resultSet做展现.没有办法,只能从数据 ...
- [转]SQL语句:Group By总结
1. Group By 语句简介: Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”.它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若 ...
- SQL语句:Group By总结
1. Group By 语句简介: Group By语句从英文的字面意义上理解就是"根据(by)一定的规则进行分组(Group)".它的作用是通过一定的规则将一个数据集划分成若干个 ...
- sql语句中处理金额,把分换算成元
问题,sql语句中直接将金额/100返回的结果会有多个小数位. as value from account as acc left join conCategory as cate on acc.ca ...
- sql语句中where,have,on的区别
一.where和on的区别 数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户. 在使用left jion时,on和where条件的区别如下: 1. ...
随机推荐
- layer插件open方法回掉值问题
最近做项目需用到一个弹出层加载iframe页面的东西,首先想到layer插件,此插件用到过多次,兼容性很好,功能也强大,废话不多说上代码. 其实功能很简单,就是在目标页面选择一个值,回掉回来,说明一下 ...
- hive中修改序列化格式分隔符
标签: hadoophivealtertable 2014-11-19 10:45 4219人阅读 评论(0) 收藏 举报 分类: hadoop(6) 版权声明:本文为博主原创文章,未经博主允许不 ...
- 2017面向对象程序设计(Java)第六周学习总结
转眼间,2017年的法定节日已经休完,我们的java学习也已经进行了六周.下面,我将对上个礼拜的学习情况进行总结. 首先,是学习态度问题.虽然同学们已经从家或者各个旅游景点回来,但是心还是没回来.有同 ...
- python安装h5py
sudo pip install cython sudo apt-get install libhdf5-dev sudo pip install h5py test: python import h ...
- Docker RestApi Create mysql Container
docker 提供了创建容器的rest api http://192.168.150.6:8888/containers/create?name=demo-mysql docker mysql容器的参 ...
- WebSocket 资料搜索
http://jwebsocket.org/ http://zh.wikipedia.org/wiki/WebSocket http://www.infoq.com/cn/news/2013/07/e ...
- SuSE 网卡配置模板
heidsoft:/etc/sysconfig/network # cat ifcfg.template ## This is a template for a network interface c ...
- 理解数据库中的undo日志、redo日志、检查点
数据库存放数据的文件,本文称其为data file. 数据库的内容在内存里是有缓存的,这里命名为db buffer.某次操作,我们取了数据库某表格中的数据,这个数据会在内存中缓存一些时间.对这个数据的 ...
- [C#] == VS Equals
声明:本篇博客翻译自:https://www.codeproject.com/Articles/1111680/equalsequals-VS-Equals-in-Csharp 由于水平(技术水平+英 ...
- deploy: [mkdir] Created dir: C:\Program Files\Java\apache-cxf-2.4.2\samples\java_first_pojo\build [loadfile] Do not set property srcbuild.classpath as its length is 0.
使用CXF的错误,错误是说我的路径有错误,因为路径错误所以无法运行程序 (1)原因,我将其放入了Program Files文件夹下,所以,其不好使 分析原因: 目录路径错误,目录中不能有空格,否则其解 ...