51cto下载-sql语句group by 语句小结收藏51cto下载-sql语句:group by 语句小结收藏51cto下载-sql语句:group by 语句小结收藏51cto下载-sql语句:group by 语句小结收藏.doc
- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL语句:Group By 语句小结收藏
1. Group By 语句简介:
Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。
P.S. 这里真是体会到了一个好的命名的力量,Group By从字面是直接去理解是非常好理解的。恩,以后在命名的环节一定要加把劲:)。话题扯远了。
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_FRUITINFOGROUP?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 Orang
您可能关注的文档
- 21.2.5一元二次方程的法(五)21.2.5一元二次方程的解法(五)21.2.5一元二次方程的解法(五)21.2.5一元二次方程的解法(五).ppt
- 20-职业道德与职业修养-达20-职业道德与职业修养-宏达20-职业道德与职业修养-宏达20-职业道德与职业修养-宏达.ppt
- 21第二十章 补虚类方药后部分21第二十章 补虚类方药后半部分21第二十章 补虚类方药后半部分21第二十章 补虚类方药后半部分.ppt
- 21.3用样本估计总体213用样本估计总体21.3用样本估计总体21.3用样本估计总体.ppt
- 21世纪管理者必备的3种技21世纪管理者必备的3种技能21世纪管理者必备的3种技能21世纪管理者必备的3种技能.doc
- 21.国际社会的主要成员2.国际社会的主要成员21.国际社会的主要成员21.国际社会的主要成员.ppt
- 20灿烂文明之花20灿烂文之花明之花.ppt
- 22、23章复习--遗传变、进化22、23章复习--遗传变异、进化22、23章复习--遗传变异、进化22、23章复习--遗传变异、进化.ppt
- 22“三严三实”之“谋事要”(2学时)22“三严三实”之“谋事要实”(2学时)22“三严三实”之“谋事要实”(2学时)22“三严三实”之“谋事要实”(2学时).doc
- 22冬夜读书示子聿22冬夜书示子聿22冬夜读书示子聿22冬夜读书示子聿.ppt
最近下载
- 我的家庭故事(课件)五年级上册综合实践活动辽师大版.pptx
- XX集团财务共享中心绩效管理办法(含附件绩效评分表).docx
- 八年级道德与法治上册第四课《社会生活讲道德》PPT课件.ppt VIP
- 全册(导学案)人教PEP版英语四年级下册.docx VIP
- 2023入团团史团章考试精选100题题库(含答案).pdf
- 多维阅读第15级—Skycar 会飞的汽车.pptx VIP
- GB/T 39552.2-2020太阳镜和太阳镜片 第2部分:试验方法.pdf
- 2024年河北省继续医学教育公共必修课参考答案.docx VIP
- 中建八局西北公司质量通病防治手册(机电安装篇).docx VIP
- 大头鱼上学记.pptx VIP
文档评论(0)