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. ...
随机推荐
- S SQL
样品申请单状态更新为“审核不通过” select STATUS_CD from S_ORDER where row_id='1-5U7IL' update S_ORDER set STATUS_CD= ...
- mysql查询赋值、修改拼接字符串
sql中修改字符串类型的字段可以这么拼接:update tbName set UserName='abc'+UserName; 但mysql中就不行了,需要这样:update tbName set U ...
- MySQL数据库远程连接的配置方案
首先,目的是使用本机可视化工具SQLyog通过IP地址远程访问另一台机器上的MySQL数据库. 本人实践的MySQL版本是MySQL 5.7.23,数据库部署的主机系统是Windows.这些简单配置均 ...
- [Selenium]重写拖拽dragWidgetToElementContainner()
public void dragWidgetToElementContainner(String widgetName, String targetPosition){ WebElement widg ...
- [转]Android Parcelable和Serializable的区别
本文主要介绍Parcelable和Serializable的作用.效率.区别及选择,关于Serializable的介绍见Java 序列化的高级认识. 1.作用 Serializable的作用是为了保存 ...
- mongo学习-固定集合
一.创建固定集合 db.createCollection("guding",{"capped":true,"size":10,"m ...
- gcc中支持的一种字符串表示方式
gcc支持的一种的字符串的表示形式 "xxx" "xxx" "xxx" 他会将这3个字符串连成一个并 且只会在最后的一个字符串末尾添加 '\ ...
- 安装一个Redis
1. 官网 http://redis.io/ 2.下载 官方不提供windows版本,但https://github.com/MSOpenTech/redis 可以从这里获取64位. 3.
- 这可能是AI、机器学习和大数据领域覆盖最全的一份速查表
https://mp.weixin.qq.com/s?__biz=MjM5ODE1NDYyMA==&mid=2653390110&idx=1&sn=b3e5d6e946b719 ...
- oracle 索引的分类
1. B树索引(默认索引,保存讲过排序过的索引列和对应的rowid值) 1)说明: 1.oracle中最常用的索引:B树索引就是一颗二叉树:叶子节点(双向链表)包含索引列和指向表中每个匹配行的ROWI ...