SQL group by使用
2015-07-15 19:09
232 查看
1、
字面上理解为对制定的’数据集‘按照columns1进行分组,分成一个个’小区域‘,然后对这些’小区域‘进行处理。
2、原始表aa
![](https://img-blog.csdn.net/20150715164415198)
3、简单 group by
示例 1
结果按照’类别‘进行分类汇总。
![](https://img-blog.csdn.net/20150715171452546)
4、group by 和 order by
示例 2
结果:
![](https://img-blog.csdn.net/20150715171757907)
5、group by 与select 中字段的限制
示例 3
结果
![](https://img-blog.csdn.net/20150715172527603)
如果SQL语句带group by 则select 后面的字段,要么包含在group by后面作为分组依据,要么被包含在聚合函数中。
6、group by columns1, columns2
示例 4
结果
![](https://img-blog.csdn.net/20150715173335965)
如果 (类别+摘要) 都一样则合并为一组,如果有任何一个不一样,则分到不同组。
7、 group by 与聚合函数
局和函数
![](https://img-blog.csdn.net/20150715174240659)
示例 5 AVG函数,求各组平均值
结果
![](https://img-blog.csdn.net/20150715174723801)
所以,平均值AVG是先按分组进行SUM,然后除以每个分组中的记录个数。
示例6 COUNT(*)统计每个分组的记录个数
结果
![](https://img-blog.csdn.net/20150715184919114)
count(*) 是用来计算每个分组中记录的个数。
8、 where 和 having 的区别
where的作用是在查询结果分组前,将不符合where条件的记录去掉,即在分组前过滤数据,在where的条件中,不能包含聚合函数。
having 的作用是发生在查询结果分组后,将符合条件的分组筛选出来,having的条件中经常包含聚合函数。
示例 7
结果
![](https://img-blog.csdn.net/20150715190326909)
示例 8
结果
GROUP BY columns1
字面上理解为对制定的’数据集‘按照columns1进行分组,分成一个个’小区域‘,然后对这些’小区域‘进行处理。
2、原始表aa
3、简单 group by
示例 1
SELECT 类别, SUM(数量) AS ab FROM aa GROUP BY 类别
结果按照’类别‘进行分类汇总。
4、group by 和 order by
示例 2
SELECT 类别, SUM(数量) AS ab FROM aa GROUP BY 类别
ORDER BY ab DESC
结果:
5、group by 与select 中字段的限制
示例 3
SELECT 类别, SUM(数量) AS ab,摘要 FROM aa GROUP BY 类别 ORDER BY ab DESC
结果
如果SQL语句带group by 则select 后面的字段,要么包含在group by后面作为分组依据,要么被包含在聚合函数中。
6、group by columns1, columns2
示例 4
SELECT 类别,摘要 ,SUM(数量) AS ab FROM aa GROUP BY 类别,摘要 ORDER BY 类别
结果
如果 (类别+摘要) 都一样则合并为一组,如果有任何一个不一样,则分到不同组。
7、 group by 与聚合函数
局和函数
示例 5 AVG函数,求各组平均值
SELECT 类别, avg(数量) AS 平均值 FROM aa GROUP BY 类别;
结果
所以,平均值AVG是先按分组进行SUM,然后除以每个分组中的记录个数。
示例6 COUNT(*)统计每个分组的记录个数
select 类别, count(*) AS 记录数 from aa group by 类别;
结果
count(*) 是用来计算每个分组中记录的个数。
8、 where 和 having 的区别
where的作用是在查询结果分组前,将不符合where条件的记录去掉,即在分组前过滤数据,在where的条件中,不能包含聚合函数。
having 的作用是发生在查询结果分组后,将符合条件的分组筛选出来,having的条件中经常包含聚合函数。
示例 7
select 类别, SUM(数量)from aa where 数量 > 8 group by 类别 having SUM(数量) > 10
结果
示例 8
select 类别, SUM(数量)from aa where 数量 > 8 group by 类别 having SUM(数量) > 10
AND
SUM(数量) < 17
结果
相关文章推荐
- SQL中的三值逻辑
- SQL Server 作业批量停止
- 结束SQL阻塞的进程
- 动态生成SQL Server视图作业
- SQL Server 语句操纵数据库
- SQL(结构化查询语句)
- oracle sql日期比较
- linux快速部署mysql服务器
- sql 存储过程分页
- 在WINXP系统上安装SQL Server企业版的方法
- 通过批处理调用SQL的方法(osql)
- SQL Server 存储过程的分页
- ASP程序与SQL存储过程结合使用详解
- SQL SERVER编写存储过程小工具
- 防御SQL注入攻击时需要注意的一个问题
- PostgreSQL教程(十九):SQL语言函数
- SQL Server复制需要有实际的服务器名称才能连接到服务器
- SQL Server 2000向SQL Server 2008 R2推送数据图文教程