关于rollup和cube等高级函数

Oracle提供了很多高级的统计函数,如rollup、cube、grouping、grouping sets,同时在数据库层还提供了维、立方等对象,可以通过定义维和立方实现查询重写,提高数据仓库的

select 批次号,种类,单位类型,sum(金额),count(1) from数据表 where批次号 = 20080727 and顺序号 < 200807031223222133 group by 批次号,cube(种类,单位类型);

----------------------------------------------------

120080727 175176.6 1395(汇总行)
220080727 73 175176.6 1395(根据单位类型汇总行)
320080727 11 107122.4 413(根据种类汇总行)
420080727 11 73 107122.4 413(根据种类单位类型汇总行)
520080727 31 62534.2 430
620080727 31 73 62534.2 430
720080727 32 5520 552
820080727 32 73 5520 552

执行计划中会有

SELECT STATEMENT, GOAL = ALL_ROWSCost=21Cardinality=32Bytes=1120
SORT GROUP BYCost=21Cardinality=32Bytes=1120
GENERATE CUBECost=21Cardinality=32Bytes=1120
SORT GROUP BYCost=21Cardinality=32Bytes=1120
TABLE ACCESS BY INDEX ROWIDObject owner=Object name=Cost=20Cardinality=175Bytes=6125
INDEX RANGE SCANObject owner=Object name=IDX__AAB001Cost=4Cardinality=370

你可能感兴趣的:(oracle,Access)