`

oracle 级联查询 级联求和 汇总

阅读更多
级联查询

select level||'层',lpad('*',level*5)||id id ,connect_by_isleaf
from test 
start with superid = '0' connect by prior id=superid;


/*------method one------*/
select superid,ltrim(max(sys_connect_by_path(id,';')),';') from(
	select superid,id,row_number() over(partition by superid order by superid) id1,
	row_number() over(order by superid) + dense_rank() over(order by superid) id2 from test )
start with id1=1 connect by prior id2 = id2 -1
group by superid order by superid;

/*------method two------*/
select distinct superid,orig_id,ltrim(first_value(id) over(partition by superid order by l desc),';')
from( 
	select superid,id orig_id,rn,parent_rn,level l,sys_connect_by_path(id,';') id 
	from (select superid,id,superid||to_char(rownum-1) rn,superid||rownum parent_rn from test)
  connect by prior parent_rn = rn )
order by orig_id;


===============
--一级汇总 二级汇总
--cube 双向 rollup单向汇总
--group by grouping sets 等于多次使用group by
select manager,location_name,sum(sales) from test_sales 
--group by rollup(manager,location_name)
group by grouping sets(manager,location_name);

drop table test_sales

--级联求和
select deptno,ename,sal,sum(sal) over(order by ename),
sum(sal) over(),
100*round(sal/sum(sal) over(),4)
from emp
where deptno=20

select deptno,ename,sal,sum(sal) over(partition by deptno order by ename) 分部门连续和,
sum(sal) over(partition by deptno) 部门总和,
sum(sal) over(order by deptno,ename) 部门总和
--order by 连续求和顺序 where就不用order by了
from emp;






分享到:
评论

相关推荐

    oracle 函数文档

    7. **其他函数**:包括位运算函数(BITAND、BITOR等)、级联查询的CONNECT_BY_ROOT,以及用于处理XML数据的XML相关的函数。 博客链接提到的iteye.com是一个知名的IT技术分享平台,博主Superivan分享的Oracle函数...

    oracle函数参考文档

    Oracle的级联函数如`CONNECT_BY_ROOT`和`START_WITH`在构建复杂的树状结构或层次查询时非常有用。它们帮助跟踪数据间的层级关系,如组织结构或产品分类。 八、系统信息函数 系统信息函数如`USER`, `SESSION_USER`, ...

    C#程序开发范例宝典(第2版).part13

    实例006 级联菜单 6 1.2 工具栏设计 6 实例007 带背景的工具栏 7 实例008 浮动工具栏 7 实例009 带下拉菜单的工具栏 8 实例010 具有提示功能的工具栏 8 1.3 状态栏设计 9 实例011 在状态栏中显示检查框 9 ...

    C#程序开发范例宝典(第2版).part08

    实例006 级联菜单 6 1.2 工具栏设计 6 实例007 带背景的工具栏 7 实例008 浮动工具栏 7 实例009 带下拉菜单的工具栏 8 实例010 具有提示功能的工具栏 8 1.3 状态栏设计 9 实例011 在状态栏中显示检查框 9 ...

    C#程序开发范例宝典(第2版).part02

    实例006 级联菜单 6 1.2 工具栏设计 6 实例007 带背景的工具栏 7 实例008 浮动工具栏 7 实例009 带下拉菜单的工具栏 8 实例010 具有提示功能的工具栏 8 1.3 状态栏设计 9 实例011 在状态栏中显示检查框 9 ...

    C#程序开发范例宝典(第2版).part12

    实例006 级联菜单 6 1.2 工具栏设计 6 实例007 带背景的工具栏 7 实例008 浮动工具栏 7 实例009 带下拉菜单的工具栏 8 实例010 具有提示功能的工具栏 8 1.3 状态栏设计 9 实例011 在状态栏中显示检查框 9 ...

    J2EE课程总结

    - **集合函数**:如`COUNT()`统计数量、`SUM()`求和、`AVG()`计算平均值等。 - **子查询**:在一个查询内部嵌套另一个查询,通常用于复杂条件的组合。 - **绑定变量**:使用`:variable`这样的语法,可以在SQL语句中...

Global site tag (gtag.js) - Google Analytics