`
mengqingyu
  • 浏览: 333009 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

oracle 树形分组小计sql

阅读更多
[size=small]
select mlk_flag_2013.ID_, qnsj_
  from (select case grouping(t.levels) when 1 then '小计' else to_char(ltrim(regexp_substr(t.levels, ';[^;]*$', 1, 1), ';')) end ID_,
               case grouping(t.levels) when 1 then ';小计' else to_char(t.levels) end levels
          from (select frm, sys_connect_by_path(frm, ';') levels from mlk_flag_2013 where time_ = '201312'
                 start with pid_ = '103068526' connect by prior frm = pid_) t
         group by rollup(t.levels)) mlk_flag_2013
  left join (select case grouping(t.level1) when 1 then '小计' else to_char(t.level1) end level1,
                    t.level2,
                    t.level3,
                    sum(t_jh_cpxssr.qnsj_) qnsj_
               from (select * from t_jh_cpxssr where time_ = '2013') t_jh_cpxssr
               left join (select frm,
							ltrim(regexp_substr(sys_connect_by_path(frm,';'),';[^;]*',1,1),';') level1,
							ltrim(regexp_substr(sys_connect_by_path(frm,';'),';[^;]*',1,2),';') level2,
							ltrim(regexp_substr(sys_connect_by_path(frm,';'),';[^;]*',1,3),';') level3
                           from mlk_flag_2013 where time_ = '201312'
                          start with pid_ = '103068526' connect by prior frm = pid_) t on t_jh_cpxssr.comp_code_ = t.frm
              group by rollup(t.level1, t.level2, t.level3)) SUM_2013 on mlk_flag_2013.levels =
                    rtrim(';' || SUM_2013.level1 || ';' || SUM_2013.level2 || ';' || SUM_2013.level3, ';')
[/size]
分享到:
评论

相关推荐

    Oracle数据库按时间进行分组统计数据的方法

    `LEVEL`是Oracle中的一个伪列,常用于递归查询,而`CONNECT BY`则用于创建树形结构。在时间操作中,可以结合`SYSDATE`函数和算术运算来加减时间。例如,减少一天可以用`sysdate - 1`,减少半天可以用`sysdate - (1/2...

    Oracle 开发DBA SQL编写规范

    ### Oracle开发DBA SQL编写规范 #### 1. 引言 本文档旨在为Oracle数据库开发者提供一套标准化的SQL及PL/SQL编写指南,通过规范化SQL及PL/SQL的编写方式,提高代码的可读性、可维护性和执行效率。本规范适用于所有...

    通过父编码信息给子节点分组

    在Oracle数据库环境中,"通过父编码信息给子节点分组"通常涉及到树形结构数据的处理,这在很多业务场景中都很常见,如组织架构、产品分类、地区层级等。这种问题的关键在于如何利用数据库的查询功能来构建并展现这种...

    sql高级进阶

    - 树形查询:介绍如何在数据库中查询层次数据。 以上详细知识点是对【部分内容】中提供的主题的具体阐述。这些知识点构成了SQL高级进阶学习的完整体系,覆盖了数据查询、数据处理、多表操作、字符串和数值处理、...

    SQLTOOLS2.0汉化版

    2. **结果集管理**:执行查询后,可以以表格、树形或文本形式查看结果,支持排序、过滤、分组和计算,便于数据分析。 3. **数据库连接**:支持多种数据库系统,如MySQL、Oracle、SQL Server、PostgreSQL等,只需...

    Oracle+SQL精妙SQL语句讲解.txt

    这个函数通常用于构建树形或层级关系的数据集。例如: ```sql SELECT ID, NAME, LTRIM(MAX(SYS_CONNECT_BY_PATH(ROLE, ',')), ',') FROM ( SELECT ROW_NUMBER() OVER (PARTITION BY TABLE1.ID ORDER BY NAME) RN,...

    经典SQL脚本大全

    │ │ 8.2.2 树形数据深度排序处理示例(模拟单编号法).sql │ │ 8.2.2 树形数据深度排序处理示例(递归法).sql │ │ 8.2.3 查找指定节点的所有子节点的示例函数.sql │ │ 8.2.4 查找指定节点的所有父节点的示例...

    oracle的开发技术

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其在企业级应用中占据着重要的地位。在Oracle的开发技术中,涵盖了多个关键知识点,这些知识点对于理解Oracle的编程规范、提高开发效率以及解决复杂数据问题...

    Oracle免费查询工具

    3. **对象浏览器**:以树形结构展示数据库中的所有对象,如表、视图、存储过程、函数、触发器等,便于快速定位和操作。 4. **数据查看与编辑**:允许直接查看和编辑数据库中的数据,支持表格形式和SQL查询方式,还...

    Sqlserver2000经典脚本

    基本方法.sql │ ├─第08章 │ │ 8.1.2 树形数据分级汇总示例.sql │ │ 8.1.3 树形数据编号重排的通用存储过程.sql │ │ 8.1.3 树形数据编号重排示例.sql │ │ 8.1.4 实现编码规则...

    Oracle数据库SQL及常用函数命令简介

    - 索引使用树形结构(如B树)来加速数据检索。通过索引,可以快速定位到所需的数据行,从而提高查询效率。 #### 十八、存在测试 (EXISTS 和 NOT EXISTS) - `EXISTS` 和 `NOT EXISTS` 用于测试子查询是否返回至少一...

    key_functions_in_oracle_sql.rar_in

    7. **连接(Connect By)**: Oracle特有的功能,用于构建层次结构或树形结构的数据。例如,`SELECT level, column1 FROM table START WITH condition CONNECT BY PRIOR column1 = column2`可遍历具有父子关系的记录...

    Oracle Forms与Reports高级开发

    1. **高级布局和控件**:利用高级布局管理器创建复杂的布局结构,掌握高级控件如树形视图、网格等的使用。 2. **PL/SQL编程**:深入理解PL/SQL语言,编写高效的业务逻辑和触发器。 3. **安全性**:设置用户权限,...

    Oracle通过递归查询父子兄弟节点方法示例

    在Oracle数据库中,递归查询是一种强大的工具,用于处理层级数据结构,如组织结构、文件系统或树形关系。在本篇文章中,我们将探讨如何利用递归查询来查找父子兄弟节点,这对于理解和处理这类关系非常关键。 首先,...

    Oracle字段转字符串/多行记录合并/连接/聚合字符串的几种方法

    Oracle提供了多种方法来实现这一目标,包括使用内置函数、PL/SQL过程以及一些高级特性。以下是对标题和描述中所涉及知识点的详细解释: 1. **concat() 函数**: Oracle中的`concat()`函数是最基本的字符串连接方法...

    oracle培训资料

    Oracle是世界上最广泛使用的商业关系型数据库管理系统之一,尤其在企业级应用中占据着主导地位。这份"Oracle培训资料"显然是一份旨在帮助学习者掌握Oracle数据库系统和SQL基础知识的教程。接下来,我们将深入探讨...

    sql实现多行合并一行

    `CONNECT BY`用于建立树形连接,而`SYS_CONNECT_BY_PATH`则可以沿着这些连接路径收集数据。 以下是一个详细的步骤解释: 1. 使用`ROW_NUMBER () OVER (PARTITION BY…)`对每个股票代码创建组内序号。这是为了后续...

    SQL最佳实践

    通过定义父节点和子节点之间的关系,可以轻松地构建出树形结构的数据。 - **Oracle用法**:使用`CONNECT BY PRIOR`子句来指定层次关系。 - **CONNECT_BY在DB2、SQL Server中的实现**:虽然不同数据库系统的实现方式...

    特殊SQL 看看就知道了

    5. **递归查询与WITH子句**:`WITH RECURSIVE`语句可以实现递归查询,特别适用于处理层次结构数据,如组织结构、层级菜单或树形数据。 6. **索引和优化**:特殊SQL技巧还包括有效地利用索引,创建复合索引、唯一...

    sql-parser-master.zip

    1. **语法分析**:SQL语句首先要通过词法分析器(Tokenizer或Scanner)将输入的文本分解成一个个小的单元——词法单元(Token)。然后,语法分析器(Parser)根据预定义的语法规则,将这些词法单元组合成语法树,...

Global site tag (gtag.js) - Google Analytics