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. ...
随机推荐
- 解决CentOS内网机通过Windows下架设代理来访问网络
新分配的CentOS运行在内网环境下,无法连接Internet,为了能够使用yum部署OpenVas工具,需要在内网下一台Windows主机架设代理,作代理服务器来令虚拟机上网. 代理服务器选择了CC ...
- partial function
[partial function] functools.partial(func[,*args][, **keywords]) Return a new partial object which w ...
- 【HDU5992】Finding Hotels 【KD树】
题意 给出n个酒店的坐标和价格,然后m个查询,每个查询给出一个人的坐标和能承受的最大价格,然后找出在他价格承受范围以内,距离他最近的宾馆,如果有多个,那么输出第一个 分析 kd树的模板题 #inclu ...
- 链接ftp,把文件或图片上传到ftp指定的文件夹中
/******************************************************************** * * * Filename : .java * Auth ...
- .NET Reflector v9.0.1.318(包含注册机)
下载 程序员的基础教程:菜鸟程序员
- Linux之RPM GPG签名
原文地址:http://linux.chinaunix.net/techdoc/system/2007/09/26/968723.shtml GPG在Linux上的应用主要是实现官方发布的包的签名机制 ...
- UX最佳演练:交互驱动连接
以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具 我们开展了最佳用户体验演练的系列活动,其涵盖了模式和格式塔理论是如何帮助我们设计便于用户理解的界面.如 ...
- 文件读取草稿(excel,csv)
using NPOI.XSSF.UserModel; using System; using System.Collections.Generic; using System.Data; using ...
- ADO.NET DataTable的复制(clone)
using (SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=test;Integrated Se ...
- Linux的磁盘分区(三)
RAID 廉价冗余磁盘阵列 Redundant Arrays of Inexpensive Disks 不同级别的RAID功能.特性各不相同 对比项 RAID0 RAID1 RAID10 RAID5 ...