SQL分组查询数据

我们在生活中会碰到不少分组的情况,比如常见的根据性别来分组,男的一组,女的一组,所以在SQL中也可以对数据进行分组,这样可以更加便利的操作数据

1.Group By 语句

Group By 从字面意义上理解就是根据“By”指定的条件对数据进行分组,所谓的分组就是将一个“数据集” 划分成若干个“小区域”,然后针 对若干个“小区域”进行数据处理,你也可以想象成将数据分成多个集合。 以下是 GROUP BY 子句的语法:

Select T1.ID from Table T1

Group By T1.ID

上面的意思就是根据T1表中相同的ID来分组,假设T1中有1,2,1,4这四个数据,那就是分成三组,1,2,4

2.聚合函数

GROUP BY 子句通常与聚合函数一起用于统计数据。聚合函数对组执行计算并返回每个组的唯一值。例如,COUNT()函数返回每个组中的行数。其他常用的聚合函数是:SUM(),AVG(),MIN(),MAX()。 GROUP BY 子句将行排列成组,聚合函数返回每个组的统计量(总数量,总和,平均值,最小值,最大值等)。

不过要注意,当使用Group By 时,选择列表只能写Group By的条件或者是聚合函数,否则就会报以下错误

就拿1中的语法来说,给你演示错误的

Select T1.Name from table T1

Group By T1.ID

因为是以ID来分组,所以选择列表T1.Name是不行的,正确的是

Select T1.ID,Count(*) from table T1

Group By T1.ID

返回的是这个ID一共有多少行

3.Having 子句

这个的作用就是筛选数据,类似于Where,但在Group By中Where子句会受到限制,所以就用Having子句,语法:

Select T1.ID from table T1

Where T1.Age > 30

Group By T1.ID

Having Sum(T1.Money)>30000

首先筛选出年龄大于30的(where可以用在Group By前面,但不可以用在后面),根据ID分组,再筛选钱大于30000的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值