- 4
- 0
- 约6.5千字
- 约 7页
- 2016-12-31 发布于重庆
- 举报
groupby,数据库名词.
GROUP BY 语句
语句简介
GroupBy语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。
2. Group By 的使用:
上面已经给出了对Group By语句的理解。基于这个理解和SQL Server 2000的联机帮助,下面对Group By语句的各种典型使用进行依次列举说明。
2.1 Group By [Expressions]:
这个恐怕是Group By语句最常见的用法了,Group By + [分组字段](可以有多个)。在执行了这个操作以后,数据集将根据分组字段的值将一个数据集划分成各个不同的小组。比如有如下数据集,其中水果名称(FruitName)和出产国家(ProductPlace)为联合主键:
FruitName ProductPlace Price Apple China $1.1 Apple Japan $2.1 Apple USA $2.5 Orange China $0.8 Banana China $3.1 Peach USA $3.0 如果我们想知道每个国家有多少种水果,那么我们可以通过如下SQL语句来完成:
SELECT COUNT(*) AS 水果种类, ProductPlace AS 出产国
FROM T_TEST_FRUITINFO
GROUP BY ProductPlace
这个SQL语句就是使用了Group By + 分组字段的方式,那么这句SQL语句就可以解释成“我按照出产国家(ProductPlace)将数据集进行分组,然后分别按照各个组来统计各自的记录数量。”很好理解对吧。这里值得注意的是结果集中有两个返回字段,一个是ProductPlace(出产国), 一个是水果种类。如果我们这里水果种类不是用Count(*),而是类似如下写法的话:
SELECT FruitName, ProductPlace FROM T_TEST_FRUITINFO GROUP BY ProductPlace
那么SQL在执行此语句的时候会报如下的类似错误:
选择列表中的列 T_TEST_FRUITINFO.FruitName 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
这就是我们需要注意的一点,如果在返回集字段中,这些字段要么就要包含在Group By语句的后面,作为分组的依据;要么就要被包含在聚合函数中。我们可以将Group By操作想象成如下的一个过程,首先系统根据SELECT 语句得到一个结果集,如最开始的那个水果、出产国家、单价的一个详细表。然后根据分组字段,将具有相同分组字段的记录归并成了一条记录。这个时候剩下的那些不存在于Group By语句后面作为分组依据的字段就有可能出现多个值,但是当前一种分组情况只有一条记录,一个数据格是无法放入多个数值的,所以这里就需要通过一定的处理将这些多值的列转化成单值,然后将其放在对应的数据格中,那么完成这个步骤的就是聚合函数。这就是为什么这些函数叫聚合函数(aggregate functions)了。
2.2 Group By All [expressions] :
Group By All + 分组字段, 这个和前面提到的Group By [Expressions]的形式多了一个关键字ALL。这个关键字只有在使用了where语句且where条件筛选掉了一些组的情况下才可以看出效果。在SQL Server 2000的联机帮助中,对于Group By All是这样进行描述的:
如果使用 ALL 关键字,那么查询结果将包括由 GROUP BY 子句产生的所有组,即使某些组没有符合搜索条件的行。没有 ALL 关键字,包含 GROUP BY 子句的 SELECT 语句将不显示没有符合条件的行的组。
其中有这么一句话“如果使用ALL关键字,那么查询结果将包含由Group By子句产生的所有组...没有ALL关键字,那么不显示不符合条件的行组。”这句话听起来好像挺耳熟的,对了,好像和LEFT JOIN 和 RIGHT JOIN 有点像。其实这里是类比LEFT JOIN来进行理解的。还是基于如下这样一个数据集:
FruitName ProductPlace Price Apple China $1.1 Apple Japan $2.1 Apple USA $2.5 Orange China $0.8 Banana China $3.1 Peach USA $3.0 首先我们不使用带ALL关键字的Group By语句:
SELECT COUNT(*) AS 水果种类, ProductPlace A
您可能关注的文档
- GP圆锥破碎机操作维护..doc
- GRE同义词总结大全..doc
- GRE巅峰词汇(全)-print..doc
- gre词汇按字母表顺序排版可直接打印..doc
- GRE范文经典(老外280篇)..doc
- GRE词汇红宝书电子讲义..doc
- GridView72般绝技..doc
- GroupAssignment..doc
- grub4dos初级教程..doc
- gscript语言使用..docx
- 2026年1月江苏扬州市教育系统事业单位招聘教师30人备考题库及1套参考答案详解.docx
- 2026年1月江苏扬州大学附属中学招聘教师15人备考题库精选答案详解.docx
- 2026年1月江苏扬州大学附属中学招聘教师15人备考题库有完整答案详解.docx
- 2026年1月江苏扬州大学附属中学招聘教师15人备考题库带答案详解.docx
- 2026年1月江苏扬州大学附属中学招聘教师15人备考题库带答案详解.docx
- 2026年1月江苏扬州大学附属中学招聘教师15人备考题库有答案详解.docx
- 2026年1月江苏扬州大学附属中学招聘教师15人备考题库完整参考答案详解.docx
- 2026年1月江苏扬州市教育系统事业单位招聘教师30人备考题库参考答案详解.docx
- 2026年1月江苏扬州大学附属中学招聘教师15人备考题库及答案详解(考点梳理).docx
- 2026年1月江苏扬州大学附属中学招聘教师15人备考题库完整参考答案详解.docx
最近下载
- 中小学生端午节假期安全教育主题班会PPT课件.pptx VIP
- 机器人等级考试三四级资料-第01课:初识Mixly和Fduino UNO.pptx VIP
- FULING富凌H200空压机中文说明书说明书用户手册.pdf
- Praat语音软件操作手册.docx VIP
- 2025-2026学年重庆市江津实验中学、田家炳中学、李市中学、白沙中学等金砖六校九年级(上)期末化学模拟试卷(含答案).pdf VIP
- 阿特拉斯•科普柯 冷冻式干燥机.pdf VIP
- 重庆市九龙坡区2024-2025学年九年级上学期期末考试数学试题(含答案与解析).pdf VIP
- 浙江省杭州市富阳区2023-2024学年三年级上学期数学期末试卷.docx VIP
- TXFQC-合成橡胶消防水带.pdf VIP
- 重庆市九龙坡区渝高教育集团2024-2025学年九年级上学期期末考试物理试题(含答案).pdf VIP
原创力文档

文档评论(0)