- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实用文案
创建数据组
所有组函数都将表当作一个大型的信息组。但是,有时需要将此信息表分成几个较小的组。
可以通过使用 GROUP BY子句完成此任务。
创建数据组: GROUP BY子句的语法
可以通过使用 GROUP BY子句将表中的行分成较小的组。
SELECT column, group_function(column)
FROM table
[WHERE condition]
[GROUP BY group_by_expression]
[ORDER BY column];
可以使用 GROUPBY子句将表中的行分成组。然后,可以使用组函数返回每个组的汇总信息。
在该语法中:
group_by_expression 指定某些列,这些列的值确定对行进行分组的基准准则
? 除非在 GROUP BY子句中指定了单个列,否则即使在 SELECT子句中包括组函数,也不能
选择单个结果。如果未在 GROUP BY子句中包括列的列表,则会收到一条错误消息。
? 通过使用 WHERE子句,可以在将行分成多个组之前先排除某些行。
? 必须 将列包括在 GROUP BY子句中。
标准
实用文案
? 不能在 GROUP BY子句中使用列别名。
使用 GROUP BY子句
SELECT列表中未出现在组函数中的所有列都必须包含在 GROUP BY子句中。
hr@TEST0924 SELECT department_id, AVG(salary) FROM employees GROUP BY
department_id ;
DEPARTMENT_ID AVG(SALARY)
100 8601.33333
30 4150
7000
20 9500
70 10000
90 19333.3333
110 10154
50 3475.55556
40 6500
80 8955.88235
10 4400
60 5760
标准
实用文案
12 rows selected.
使用 GROUPBY 子句时,应确保将 SELECT列表中未出现在组函数中的所有列都包含在 GROUP
BY子句中。示例显示每个部门的部门编号和平均薪金。下面介绍含有
GROUP BY子句的 SELECT语句是如何进行求值的:
? SELECT:子句指定要检索的列,如下所示:
- EMPLOYEES:表中的部门编号列
- GROUP BY:子句指定的组中所有薪金的平均值
? FROM:子句指定数据库必须访问的表: EMPLOYEES表。
? WHERE:子句指定要检索的行。由于没有 WHERE子句,默认情况下会检索所有行。
? GROUP BY:子句指定如何对行进行分组。由于是按部门编号对行进行分组,因此应用于
薪金列的 AVG函数会计算每个部门的平均薪金。
注:要按升序或降序对查询结果进行排序,请在查询中包含 ORDER BY子句。
使用 GROUP BY子句
GROUP BY列不一定要出现在 SELECT列表中。
hr@TEST0924 SELECT AVG(salary) FROM employees GROUP BY department_id ;
AVG(SALARY)
标准
实用文案
86
文档评论(0)