当前位置:  数据库>oracle

Oracle DB 对行进行分组-group by、having

    来源: 互联网  发布时间:2017-05-27

    本文导语:  所有组函数都将表当作一个大型的信息组。但是,有时需要将此信息表分成几个较小的组。可以通过使用GROUP BY子句完成此任务。   可以通过使用GROUP BY子句将表中的行分成较小的组。 SELECT column, group_function(column) FROM t...

所有组函数都将表当作一个大型的信息组。但是,有时需要将此信息表分成几个较小的组。可以通过使用GROUP BY子句完成此任务。
 
可以通过使用GROUP BY子句将表中的行分成较小的组。
SELECT column, group_function(column)
FROM table
[WHERE condition]
[ORDER BY column];
 
 
可以使用GROUP BY子句将表中的行分成组。然后,可以使用组函数返回每个组的汇总信息。
在该语法中:
group_by_expression 指定某些列,这些列的值确定对行进行分组的基准准则
• 除非在GROUP BY子句中指定了单个列,否则即使在SELECT子句中包括组函数,也不能选择单个结果。如果未在GROUP BY子句中包括列的列表,则会收到一条错误消息。
• 通过使用WHERE子句,可以在将行分成多个组之前先排除某些行。
• 必须
 
SELECT列表中未出现在组函数中的所有列都必须包含在GROUP BY子句中。
 
使用GROUP BY子句时,应确保将SELECT列表中未出现在组函数中的所有列都包含在GROUP BY子句中。示例显示每个部门的部门编号和平均薪金。下面介绍含有
GROUP BY子句的SELECT语句是如何进行求值的:
• SELECT:子句指定要检索的列,如下所示:
- EMPLOYEES:表中的部门编号列
- GROUP BY:子句指定的组中所有薪金的平均值
• FROM:子句指定数据库必须访问的表:EMPLOYEES表。
• WHERE:子句指定要检索的行。由于没有WHERE子句,默认情况下会检索所有行。
• GROUP BY:子句指定如何对行进行分组。由于是按部门编号对行进行分组,因此应用于薪金列的AVG函数会计算每个部门的平均薪金。
注:要按升序或降序对查询结果进行排序,请在查询中包含ORDER BY子句。
 
GROUP BY列不一定要出现在SELECT列表中。
 
 
GROUP BY列不一定要出现在SELECT子句中。例如,示例中的SELECT语句显示每个部门的平均薪金,但没有显示相应的部门编号。但是如果没有部门编号,结果看起来毫无意义。
也可以在ORDER BY子句中使用组函数:
 
有时,需要查看组内的各个组的结果。
 
 
此示例显示一个报表,其中显示要付给各个部门中每种职务的薪金总和。
EMPLOYEES表首先按部门编号进行分组,然后在各个组中又按职务进行分组。例如,将部门50 中的四个仓储职员分成一个组,并为该组中的所有仓储职员生成一个结果(薪金总和)。
 
 
 
 
通过列出多个GROUP BY列,可以返回组和子组的汇总结果。GROUP BY子句对行进行分组,但不保证结果集的顺序。要对组进行排序,请使用ORDER BY子句。
在示例中,包含GROUP BY子句的SELECT语句按如下方式进行求值:
• SELECT子句指定要检索的列:
- EMPLOYEES表中的部门ID
- EMPLOYEES表中的职务ID
- GROUP BY子句指定的组中所有薪金的总和
• FROM子句指定数据库必须访问的表:EMPLOYEES表。
• WHERE子句将结果集限定为部门ID 大于40 的行。
• GROUP BY子句指定应如何对结果行进行分组:
- 首先,按部门ID 对行进行分组
- 其次,在部门ID 组中按职务ID 对行进行分组
• ORDER BY子句按部门ID 对结果进行排序。
注:SUM函数将应用于每个部门ID 组的结果集中所有职务ID 的薪金列。另外,请注意,不返回SA_REP 行。此行的部门ID 为NULL,因此不满足WHERE条件。
 
更多详情见请继续阅读下一页的精彩内容:

相关阅读:

Oracle分组函数rollup,cube 

Oracle 分组函数用法示例详解

Oracle分组函数之ROLLUP魅力  

Oracle分组函数之CUBE魅力

Oracle 分组查询详解

 


    
 
 

您可能感兴趣的文章:

  • Oracle中用GROUPING SETS分组自定义汇总
  • MySQL与Oracle中分组、聚合函数的区别
  • oracle10g装在redhat linux es3 下进行pro*cc++进行编程的问题
  • 紧急求救:jsp对Oracle数据库中long 型数据进行模糊查询 如何查?
  • Oracle针对数据库某一行进行操作的时候,如何将这一行加行锁
  • Oracle 中文字段进行排序的sql语句
  • 紧急求救:对Oracle数据库中long 型数据进行模糊查询 如何查?
  • 请问:ORACLE中的数据取出来后,需不需要进行一定的转换才能变为C语言的数据类型啊?
  • 如何能在网上找到一个可以提供ORACLE进行JSP设计的主机展示我的作品啊,付费也行
  • 使用Oracle Text进行全文检索
  • 在命令行下进行Oracle用户解锁的语句
  • 对Oracle执行计划进行监控
  • Oracle ASM环境下怎么进行数据库冷备
  • 在Oracle库存模块中进行帐龄分析
  • 使用Oracle的Decode函数进行多值判断
  • RH7.1下安装Oracle8.1.7,安装到Configuration Tools时,不能进行下去。请教高手指点。
  • 大侠解决一下java 如何和 oracle 进行连接??(高分—)
  • DBA_Oracle Startup / Shutdown启动和关闭过程详解(概念)(对数据库进行各种维护操作)
  • 使用Oracle Partition Table对日志表进行分区
  • Oracle设置系统参数进行性能优化
  • 在Oracle中手工对任务进行分区的方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍 iis7站长之家
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • ORACLE日期相关操作
  • Linux系统下Oracle的启动与Oracle监听的启动
  • ORACLE数据库常用字段数据类型介绍
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • Oracle 12c的九大最新技术特性介绍
  • 网间Oracle的连接,远程连接Oracle服务器??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,