系统整理SQL中Group By的用法与Group By多个字段限制


本文摘自PHP中文网,作者php是最好的语言,侵删。

SQL中什么时候使用Group By?本文详细讲解了Group By的用法,它的简单的定义就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。Group By中Select指定的字段限制有哪些?apache php mysql

1、概述

“Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。

2、原始表

3、简单Group By

示例1

1

2

3

select 类别, sum(数量) as 数量之和

from A

group by 类别

返回结果如下表,实际上就是分类汇总。

4、Group By 和 Order By

示例2

1

2

3

4

select 类别, sum(数量) AS 数量之和

from A

group by 类别

order by sum(数量) desc

返回结果如下表

在Access中不可以使用“order by 数量之和 desc”,但在SQL Server中则可以。

5、Group By中Select指定的字段限制

示例3

1

2

3

4

select 类别, sum(数量) as 数量之和, 摘要

from A

group by 类别

order by 类别 desc

示例3执行后会提示下错误,如下图。这就是需要注意的一点,在select指定的字段要么就要包含在Group By语句的后面,作为分组的依据;要么就要被包含在聚合函数中。

6、Group By All

示例4

1

2

3

select 类别, 摘要, sum(数量) as 数量之和

from A

group by all 类别, 摘要

示例4中则可以指定“摘要”字段,其原因在于“多列分组”中包含了“摘要字段”,其执行结果如下表

“多列分组”实际上就是就是按照多列(类别+摘要)合并后的值进行分组,示例4中可以看到“a, a2001, 13”为“a, a2001, 11”和“a, a2001, 2”两条记录的合并。

阅读剩余部分

相关阅读 >>

分析mongodb和mysql各自的关键特性、差别和优势

mysql索引详细解析

mysql建表常用的sql语句汇总

oracle常用sql语句

sql批量插入数据的存储过程

触发器的特点是什么?

sql查询中group by的含义是什么?

php实现的简单操作sqlite数据库类与用法示例

sql数据库日志已满解决方法

oracle出现错误ora-00904: invalid identifier

更多相关阅读请进入《sql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...