oracle GROUPING函数

Grouping函数:
可以接受一列,返回0或1。如果列值为空,则返回1,非空则返回0。它只能在rollup和或cube函数中使用,因为在统计中显示“全部”的那一项统计值时,那一项的标签通常是空的,这时grouping就非常有用,还可以在grouping的基础上进行decode, case等进行美化。

SQL> select grouping(index_type) g_ind, grouping(status) g_st, index_type, status, count(*)
  2  from t group by rollup(index_type, status) order by 1, 2;

     G_IND       G_ST INDEX_TYPE                  STATUS     COUNT(*)
---------- ---------- --------------------------- -------- ----------
         0          0 LOB                         N/A               1
         0          0 LOB                         VALID           572
         0          0 FUNCTION-BASED NORMAL       VALID            17
         0          0 FUNCTION-BASED DOMAIN       VALID             1
         0          0 IOT - TOP                   VALID           115
         0          0 CLUSTER                     VALID            10
         0          0 NORMAL                      VALID          4557
         0          0 NORMAL                      N/A              56
         0          0 DOMAIN                      VALID             1
         0          0 BITMAP                      VALID             8
         0          0 BITMAP                      N/A               7
         0          1 IOT - TOP                                   115
         0          1 FUNCTION-BASED DOMAIN                         1
         0          1 DOMAIN                                        1
         0          1 CLUSTER                                      10
         0          1 BITMAP                                       15
         0          1 FUNCTION-BASED NORMAL                        17
         0          1 NORMAL                                     4613
         0          1 LOB                                         573
         1          1                                            5345

20 rows selected



SQL> select decode(grouping(index_type),1,"合计:",index_type) as index_type, decode(grouping(status),1,'小计:',status) as status from t group by rollup(index_type, status) order by 1, 2;




Grouping_id函数:
比grouping还强点,可以接收多个列,这几个列都不为空时,返回0,只要有一个为空,则返回1,如果都为空,则返回3。
下面这条查询把grouping_id牛刀杀鸡,当做grouping用了,可以看到结果跟用grouping是完全一样。

SQL> select grouping_id(index_type) g_ind, grouping_id(status) g_st, index_type, status, count(*)
  2  from t group by rollup(index_type, status) order by 1, 2;

     G_IND       G_ST INDEX_TYPE                  STATUS     COUNT(*)
---------- ---------- --------------------------- -------- ----------
         0          0 LOB                         N/A               1
         0          0 LOB                         VALID           572
         0          0 FUNCTION-BASED NORMAL       VALID            17
         0          0 FUNCTION-BASED DOMAIN       VALID             1
         0          0 IOT - TOP                   VALID           115
         0          0 CLUSTER                     VALID            10
         0          0 NORMAL                      VALID          4557
         0          0 NORMAL                      N/A              56
         0          0 DOMAIN                      VALID             1
         0          0 BITMAP                      VALID             8
         0          0 BITMAP                      N/A               7
         0          1 IOT - TOP                                   115
         0          1 FUNCTION-BASED DOMAIN                         1
         0          1 DOMAIN                                        1
         0          1 CLUSTER                                      10
         0          1 BITMAP                                       15
         0          1 FUNCTION-BASED NORMAL                        17
         0          1 NORMAL                                     4613
         0          1 LOB                                         573
         1          1                                            5345

20 rows selected

下面这条查询才体现了grouping_id的作用。

SQL> select grouping_id(index_type, status) g_st, index_type, status, count(*)
  2  from t group by rollup(index_type, status) order by 1, 2;

      G_ST INDEX_TYPE                  STATUS     COUNT(*)
---------- --------------------------- -------- ----------
         0 BITMAP                      VALID             8
         0 BITMAP                      N/A               7
         0 CLUSTER                     VALID            10
         0 DOMAIN                      VALID             1
         0 FUNCTION-BASED DOMAIN       VALID             1
         0 FUNCTION-BASED NORMAL       VALID            17
         0 IOT - TOP                   VALID           115
         0 LOB                         N/A               1
         0 LOB                         VALID           572
         0 NORMAL                      N/A              56
         0 NORMAL                      VALID          4557
         1 BITMAP                                       15
         1 CLUSTER                                      10
         1 DOMAIN                                        1
         1 FUNCTION-BASED DOMAIN                         1
         1 FUNCTION-BASED NORMAL                        17
         1 IOT - TOP                                   115
         1 LOB                                         573
         1 NORMAL                                     4613
         3                                            5345

20 rows selected

根据grouping_id接收不同的列的组合,可以美化出很神奇的结果。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、SQL ...........................................................................................................................................................8 1.1、基本概念: ...................................................................................................................................8 1.2、数据库安全 : ...............................................................................................................................8 1.3、基本的SQL SELECT 语句 .............................................................................................................8 1.4、SELECT语句 ...................................................................................................................................9 1 、语法: .......................................................................................................................................9 2、SQL语句说明: .........................................................................................................................9 3、数字和日期都可以使用数学运算符建立表达式。 ...............................................................9 4、定义空(NULL)值 ...................................................................................................................9 5、别名 ...........................................................................................................................................9 6、spool +路径 ...........................................................................................................................10 7、连接操作符: || ...................................................................................................................10 8、文本字符串 .............................................................................................................................10 9、DISTINCT .................................................................................................................................10 1.5、SQLPLUS 与 SQL 的关系 ...........................................................................................................10 1、SQLPLUS命令的功能: ...........................................................................................................10 2、查询 SQLPLUS 命令 ...............................................................................................................10 3、SQLPLUSW 在 WINDOWS 下运行的分析器。 .........................................................................10 4、SQLPLUS 命令: ..................................................................................................................... 11 1.6、单行函数 .....................................................................................................................................12 1、character字符类型函数: ...................................................................................................12 2、number数字类型函数 .............................................................................................................15 3、时间类型函数: (date) .......................................................................................................15 1.7 、嵌套函数: ..................................................................................................................................21 1. 通用函数: .......................................................................................................................21 2. 条件表达式: ...................................................................................................................24 3. 从多表中显示数据: .......................................................................................................25 1.8、用字函数产生的总计 .................................................................................................................26 1.9、子查询: .....................................................................................................................................28 2.0、替换变量: .................................................................................................................................29 1.& .................................................................................................................................................29 2.&& ...............................................................................................................................................29 2.1.环境变量: ...................................................................................................................................29 2.2 格式化命令: ................................................................................................................................30 2.3 做脚本文件的过程: ....................................................................................................................31 2.3 数据操作语句: ............................................................................................................................31 1. 插入 ...................................................................................................................................31 2. 删除 ...................................................................................................................................31 3. 更新 ...................................................................................................................................31 4. MERGE语句 .........................................................................................................................32 5. 事务(transaction) : ...................................................................................................32 2.4 创建和管理表 ................................................................................................................................33 1、表(TABLE)基本的存储单位,由行和列组成。 ...............................................................33 2 、方案:一个用户所有对象的命名集合。 .............................................................................34 3、CTAS(子查询建表) : ...........................................................................................................34 4、截取: .....................................................................................................................................35 5、给表加注释:COMMENT ...........................................................................................................36 6、约束条件: .............................................................................................................................36 2.5.视图 (VIEW) .............................................................................................................................37 2.6、序列: .........................................................................................................................................39 2.7、索引: .........................................................................................................................................40 2.8 控制用户的访问 ............................................................................................................................41 1.数据库的安全性 .......................................................................................................................41 2.角色: .......................................................................................................................................41 3.使用集合操作 ...........................................................................................................................42 4.ORDER BY 子句: .....................................................................................................................42 5.GROUP BY 子句的增强 .............................................................................................................43 6.GROUPING 函数 .........................................................................................................................43 2.9 高级子查询 ....................................................................................................................................44 1. 成对子查询: ...................................................................................................................44 2.层次查询 ...................................................................................................................................44 二、Management: .......................................................................................................................................45 1.Oracle的构件和组件 .......................................................................................................................45 2.数据库的物理结构: .......................................................................................................................46 1.控制文件 ...................................................................................................................................46 2. 数据文件 ...........................................................................................................................46 3. 重做日志文件 ...................................................................................................................46 4. data file 数据文件: .................................................................................................46 5. 作用:存放数据。 ...........................................................................................................46 6. 数据文件大小可以扩展。 ...............................................................................................46 7. tablespace 表空间:一个或多个数据文件的逻辑组成。 .........................................46 8. redo log file 重做日志文件 .....................................................................................46 9. control file 控制文件 ...............................................................................................46 10. parameter file 初始化参数文件 ...............................................................................46 11. password file 口令文件 ...........................................................................................47 12. archived log file 归档日志文件 .............................................................................47 3.instance 实例/例程 .......................................................................................................................47 4、进程结构 .........................................................................................................................................49 1. 用户进程:开始于数据库用户请求连接数据库 ...........................................................49 2. 服务进程:与ORA实例连接,开始于用户会话的建立。 .............................................49 3. 后台进程:当ORA实例启动时启动 .................................................................................49 1. DBWR 数据库写进程 .......................................................................................................49 2. LGWR 重作日志写进程 ...................................................................................................50 6.CKPT 检查点进程 .................................................................................................................50 7.ARCn 归档进程(可选) .....................................................................................................50 8.LOGICAL STRUCTURE 逻辑结构 ............................................................................................50 5、OEM ORACLE 企业管理器 ...............................................................................................................51 6.管理ORA实例 .....................................................................................................................................51 7.启动过程: .......................................................................................................................................52 1. NOMOUNT 实例启动阶段 ...................................................................................................52 2. MOUNT 数据库装载阶段 ...................................................................................................52 3. OPEN 打开数据库 .............................................................................................................52
高清原版文档,非扫描件 一、SQL................................................... 1.1、基本概念:........................................... 1.2、数据库安全:......................................... 1.3、基本的SQL SELECT 语句................................ 1.4、SELECT语句........................................... 1、语法:................................................. 2、SQL语句说明:.......................................... 3、数字和日期都可以使用数学运算符建立表达式。............. 4、定义空(NULL)值....................................... 5、别名................................................... 6、spool +路径............................................ 7、连接操作符: || ....................................... 8、文本字符串............................................. 9、DISTINCT .............................................. 1.5、SQLPLUS 与 SQL 的关系................................ 1、SQLPLUS命令的功能: ................................... 2、查询 SQLPLUS 命令...................................... 3、SQLPLUSW 在 WINDOWS 下运行的分析器。................... 4、SQLPLUS 命令: ........................................ 1.6、单行函数............................................. 1、character字符类型函数: ............................... 2、number数字类型函数..................................... 3、时间类型函数:(date) ................................ 1.7、嵌套函数:........................................... 1. 通用函数:............................................. 2. 条件表达式:........................................... 3. 从多表中显示数据: .................................... 1.8、用字函数产生的总计................................... 1.9、子查询:............................................. 2.0、替换变量:........................................... 1.&....................................................... 2.&&...................................................... 2.1.环境变量:............................................ 2.2 格式化命令:.......................................... 2.3 做脚本文件的过程:.................................... 2.3 数据操作语句:........................................ 1. 插入................................................... 2. 删除................................................... 3. 更新................................................... 4. MERGE语句.............................................. 5. 事务(transaction): ................................. 2.4 创建和管理表.......................................... 1、表(TABLE)基本的存储单位,由行和列组成。.............. 2、方案:一个用户所有对象的命名集合。..................... 3、CTAS(子查询建表):................................... 4、截取:................................................. 资源来自网络,仅供学习! Oracle 从入门到精通 第 2 页,共 106 页 5、给表加注释:COMMENT ................................... 6、约束条件:............................................. 2.5.视图 (VIEW) ........................................ 2.6、序列:............................................... 2.7、索引:............................................... 2.8 控制用户的访问........................................ 1.数据库的安全性.......................................... 2.角色:.................................................. 3.使用集合操作............................................ 4.ORDER BY 子句:......................................... 5.GROUP BY 子句的增强..................................... 6.GROUPING 函数........................................... 2.9 高级子查询............................................ 1. 成对子查询:........................................... 2.层次查询................................................ 二、Management:.......................................... 1.Oracle的构件和组件...................................... 2.数据库的物理结构:...................................... 1.控制文件................................................ 2. 数据文件............................................... 3. 重做日志文件........................................... 4. data file 数据文件: .................................. 5. 作用:存放数据。....................................... 6. 数据文件大小可以扩展。 ................................ 7. tablespace 表空间:一个或多个数据文件的逻辑组成。 ..... 8. redo log file 重做日志文件............................. 9. control file 控制文件 ................................. 10. parameter file 初始化参数文件......................... 11. password file 口令文件................................ 12. archived log file 归档日志文件........................ 3.instance 实例/例程...................................... 4、进程结构............................................... 1. 用户进程:开始于数据库用户请求连接数据库 .............. 2. 服务进程:与ORA实例连接,开始于用户会话的建立。........ 3. 后台进程:当ORA实例启动时启动.......................... 1. DBWR 数据库写进程...................................... 2. LGWR 重作日志写进程.................................... 6.CKPT 检查点进程......................................... 7.ARCn 归档进程(可选) .................................. 8.LOGICAL STRUCTURE 逻辑结构 ............................. 5、OEM ORACLE 企业管理器.................................. 6.管理ORA实例............................................. 7.启动过程:.............................................. 1. NOMOUNT 实例启动阶段................................... 2. MOUNT 数据库装载阶段................................... 3. OPEN 打开数据库........................................ 资源来自网络,仅供学习! Oracle 从入门到精通 第 3 页,共 106 页 8.启动命令:.............................................. 1. 在关闭状态下执行....................................... 2. 切换命令:不能跳级切换................................. 3. 关闭过程与启动逆向; .................................. 9.监视诊断文件:.......................................... 10.BACKGROUND TRACE FILES 后台进程跟踪文件................ 11.user TRACE FILES 用户跟踪文件.......................... 12.创建数据库............................................. 1. 创建前的准备:......................................... 2. 创建方法:............................................. 13、UNIX 操作系统环境变量................................. 14、手动创建数据库........................................ 15、使用数据字典和动态性能视图............................ 1. 数据字典............................................... 2. 数据字典的分类:....................................... 3. 动态性能表:........................................... 16、维护重做日志文件...................................... 17、管理表空间和数据文件.................................. 18、表空间的空间管理(区的管理): ....................... 1、本地管理:............................................. 2、数据字典管理表空间: .................................. 3、存储参数:............................................. 4、表空间状态:........................................... 5、查看表空间信息:....................................... 6、重定义表空间的大小..................................... 7、操作表空间:........................................... 8、移动数据文件:......................................... 9、删除表空间:........................................... 19、存储结构和关系........................................ 1、段类型:............................................... 2、区:................................................... 3、数据库块............................................... 4、9I提供非标准块......................................... 5、标准块大小............................................. 6、非标准块的大小......................................... 7、数据块的内容:......................................... 8、块的空间利用参数:..................................... 9、数据块管理:........................................... 10、管理回滚段(Undo)的数据.............................. 20、Undo段的类型:........................................ 1.NON-SYSTEM类型:........................................ 2.SYSTEM类型:............................................ 3.自动UNDO段管理的其他参数: ............................. 21、管理表................................................ 1.创建表提示:............................................ 2.创建临时表.............................................. 资源来自网络,仅供学习! Oracle 从入门到精通 第 4 页,共 106 页 3.修改存储参数和块空间利用参数: ......................... 4.手动分配区:............................................ 5.非分区表的重组.......................................... 6.删除列:................................................ 7.重命名表中的一列:...................................... 8.标记列不再使用:........................................ 9.删除不使用的列:........................................ 10.继续列的删除操作:..................................... 11.得到表的信息:......................................... 22、管理索引(index) .................................... 1.索引的分类:............................................ 2.索引结构:.............................................. 3.存储参数:.............................................. 4.创建B-TREE索引:........................................ 5.索引PCTFREE的变化: .................................... 6.创建索引的提示:........................................ 7.创建位图索引:.......................................... 8.改变索引参数:........................................... 9.重建索引:.............................................. 10.在线重建索引:(建议不使用) .......................... 11.合并索引:............................................. 12.删除索引:............................................. 13.确定未使用的索引:..................................... 14.查看索引信息:......................................... 23、管理口令安全和资源.................................... 1.口令帐户锁定:.......................................... 2.自动锁定,可以手动解锁.................................. 3.口令的到期和过期:...................................... 4.口令历史:.............................................. 5.口令的校验:............................................ 6.用户提供的校验函数:.................................... 7.口令校验函数:.......................................... 8.创建profile口令设置: .................................. 9.修改 profile :口令设置................................. 10.删除 profile: 口令设置................................ 24、资源管理:............................................ 1.启动资源限制通过:...................................... 2.会话级参数:............................................ 3.调用级参数:............................................ 4.创建profile:资源配制................................... 5.查看:.................................................. 24、管理用户.............................................. 1. 用户:................................................. 2.数据库的方案:.......................................... 3.创建用户的步骤:........................................ 4.创建一个新的用户:数据库认证............................ 资源来自网络,仅供学习! Oracle 从入门到精通 第 5 页,共 106 页 5.改变用户的表空间配额: ................................. 6.删除用户:.............................................. 7.查看:.................................................. 25、管理权限.............................................. 1. 两种用户权限:......................................... 2.系统权限:.............................................. 3.授予系统权限:.......................................... 4.授予对象权限:.......................................... 5.移除系统权限:.......................................... 7.移除对象权限:.......................................... 8.查看:.................................................. 26、管理角色.............................................. 1.创建角色:.............................................. 2.赋予角色权限:.......................................... 3.将角色赋予用户;........................................ 4.设置用户的默认角色在需要的时候启用或禁用角色; ......... 5.移除角色;.............................................. 6.删除角色;.............................................. 7.预定义角色:............................................ 8.查看:.................................................. 27、使用全球化支持........................................ 28、基本的ORA网络服务器端配置............................. 三、PL/SQL................................................0 1、创建PL/SQL语句的过程:................................. 2、PL/SQL中的SQL语句...................................... 1. 查询语句:可以直接使用,语法和规则有改变。 ............ 2. 循环控制:............................................. 3. index by tables 中的方法: ............................ 4. SQL Cursor ............................................ 5.FOR循环的游标使用:..................................... 6.带参数的游标:.......................................... 7.异常处理................................................ 8.预定义异常:............................................ 9.非预定义异常:.......................................... 3、函数:................................................. 4、存储程序单元........................................... 5、管理PL/SQL程序块: .................................... 6、包(package) ......................................... 1.组成:.................................................. 2.构建没有包头的包:...................................... 3.SQL中使用包函数的限制................................... 4.与开发相关的系统包:.................................... 7、触发器................................................. 1.语句级:................................................ 2.行级触发器:............................................ 3.INSTEAD OF TRIGGER:替换类型触发器...................... 资源来自网络,仅供学习! Oracle 从入门到精通 第 6 页,共 106 页 4.DDL触发器:............................................. 5.系统事件触发器:........................................ 8、审计................................................... 9、数据同步:............................................. 四、backup and recover备份与恢复.......................... 1、备份与恢复概论:....................................... 2、定义一个备份、恢复策略: .............................. 3、数据库的同步:.......................................... 4、数据库的备份........................................... 1.物理备份与逻辑备份:.................................... 2.数据库的恢复............................................ 4、ARCHIVELOG模式下的不完全恢复: ........................

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值