精华内容
参与话题
问答
  • GROUP BY ROLLUP (col1, col2, col3, col4) 为以下列表中的每个列表达式组合创建组。 •col1、col2、col3、col4 •col1、col2、col3、NULL •col1、col2、NULL、NULL •col1、NULL、NULL、NULL •NULL、NULL、NULL、...

    GROUP BY ROLLUP (col1, col2, col3, col4) 为以下列表中的每个列表达式组合创建组。
    •col1、col2、col3、col4
    •col1、col2、col3、NULL
    •col1、col2、NULL、NULL
    •col1、NULL、NULL、NULL
    •NULL、NULL、NULL、NULL 

    可以理解为从最后一个字段往前递减,为每中情况查询一个分组,递减时用 NULL补充。

    类比于数学中: 分组

     

    GROUP BY CUBE 为所有可能的列组合创建组。

    对于 GROUP BY CUBE (a, b),结果具有 (a, b)、(NULL, b)、(a, NULL) 和 (NULL, NULL) 唯一值的组

    类比于数学中的:全排列

     

    展开全文
  • 2 一、group by rollup其实就是在group by的基础上做了一个合计 例一: -- 数据库中用户表各类型字段个用和总用户表字段个数 select types.name as ctype,Count(columns.name) from sys.columns as columns left ...

    一、group by rollup其实就是在group by的基础上做了一个合计

    SQL 中ROLLUP 用法
    ROLLUP 运算符生成的结果集类似于 CUBE 运算符生成的结果集。

    下面是 CUBE 和 ROLLUP 之间的具体区别:

    1、CUBE 生成的结果集显示了所选列中值的所有组合的聚合。
    2、ROLLUP 生成的结果集显示了所选列中值的某一层次结构的聚合。

    ROLLUP 优点:

    (1)ROLLUP 返回单个结果集,而 COMPUTE BY 返回多个结果集,而多个结果集会增加应用程序代码的复杂性。
    (2)ROLLUP 可以在服务器游标中使用,而 COMPUTE BY 则不可以。
    (3)有时,查询优化器为 ROLLUP 生成的执行计划比为 COMPUTE BY 生成的更为高效。

    ROLLUP 用法 例一:
     -- 数据库中用户表各类型字段个用和总用户表字段个数
      select types.name as ctype,Count(columns.name)
        from sys.columns as columns left join sys.objects as objects
                      on columns.object_id = objects.object_id 
                   left join sys.types as types
                      on columns.system_type_id = types.system_type_id 
        where objects.type  = 'U' -- 返回用户表
        group by types.name with rollup
    
    
    进化,再增加一个分组字段,例二:
     -- 增加表名字段
     -- 数据库中用户表各表中各类型字段个数和字段总个数
      select objects.name as ctablicname , types.name as ctype, Count(columns.name) as icount
        from sys.columns as columns left join sys.objects as objects
                      on columns.object_id = objects.object_id 
                   left join sys.types as types
                      on columns.system_type_id = types.system_type_id 
        where objects.type  = 'U' -- 返回用户表
        group by objects.name , types.name 
        with rollup
    

    二、同时取出明细 with cube

    例三:同时取出明细
         -- 数据库中用户表各表中各类型字段个数和明细
      select objects.name ,types.name as ctype, Count(columns.name) as icount
        from sys.columns as columns left join sys.objects as objects
                      on columns.object_id = objects.object_id 
                   left join sys.types as types
                      on columns.system_type_id = types.system_type_id 
        where objects.type  = 'U' -- 返回用户表
        group by objects.name , types.name 
        with cube
    
    
    进化,Grouping() 增加一个分组标记, 例四:
      -- 数据库中用户表各表中各类型字段个数和明细
         -- Grouping():判断是否是分组的列,1表示聚合列,0表示不是
         
      select Grouping(objects.name) bGroup , objects.name ,types.name as ctype, Count(columns.name) as icount
        from sys.columns as columns left join sys.objects as objects
                      on columns.object_id = objects.object_id 
                   left join sys.types as types
                      on columns.system_type_id = types.system_type_id 
        where objects.type  = 'U' -- 返回用户表
        group by objects.name , types.name 
        with cube 
        
    
    
    
    展开全文
  • SELECT isnull(Name,'小计') AS Name,sum(Value)as Value from test1 group by name with rollup 转载于:https://www.cnblogs.com/tomkillua/archive/2008/10/29/1321869.html

    SELECT isnull(Name,'小计') AS Name,sum(Value)as Value from test1 group by name with rollup

    转载于:https://www.cnblogs.com/tomkillua/archive/2008/10/29/1321869.html

    展开全文
  • group by rollup

    2014-10-28 21:42:32
    Oracle数据库中的rollup配合group by命令使用,可以提供信息汇总功能(与"小计"相似) 示例如下: SQL> select job,deptno,sal from emp; JOB DEPTNO SAL --------- --------- --------- CLERK ...

    Oracle数据库中的rollup配合group by命令使用,可以提供信息汇总功能(与"小计"相似)

    示例如下:


    SQL> select job,deptno,sal from emp;


    JOB            DEPTNO   SAL

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

    CLERK          20          800

    SALESMAN   30          1600

    SALESMAN   30          1250

    MANAGER     20          2975

    SALESMAN   30          1250

    MANAGER     30          2850

    MANAGER     10          2450

    ANALYST       20          3000

    PRESIDENT   10          5000

    SALESMAN    30          1500

    CLERK          20          1100

    CLERK          30          950

    ANALYST       20          3000

    CLERK          10          1300


    已选择14行。


    SQL> select job,deptno,sum(sal) total_sal from emp group by rollup(job,deptno);


    JOB              DEPTNO     TOTAL_SAL

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

    ANALYST        20              6000

    ANALYST                          6000

    CLERK           10              1300

    CLERK            20             1900

    CLERK            30               950

    CLERK                             4150

    MANAGER       10             2450

    MANAGER       20             2975

    MANAGER       30             2850

    MANAGER                        8275

    PRESIDENT     10             5000

    PRESIDENT                      5000

    SALESMAN      30             5600

    SALESMAN                       5600

                                          29025


    已选择15行。

    SQL>

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

    可以看出,

    用了rollup的group by子句所产生的所谓的超级聚合就是指在在产生聚合时会从右向左逐个对每一列进行小结,并在结果中生成独立的一行,同时也会对聚合列生成一个合计列。

    例如在scott用户下面有一个emp表:
    select deptno,job,sum(sal) from emp group by deptno,job;
    会对每一个不同的dept,job生成一行独立的结果。


    select deptno,job,sum(sal) from emp group by rollup(deptno,job);
    的结果中除了上述的结果结果之外,还会对每一个deptno进行一个小结,并单独生成一行,除此之外还会对所有的sal求和并生成一列。

    这里的group by后面我们仅仅接了2列,实际上我们可以使用更多列的,这样的话oracle就会以从右向左的方式来进行逐个小结。

    这里需要注意的是是使用了group by和rollup后,其后面的列要用括号括起来,否则将会出现ORA-00933: SQL 命令未正确结束的错误。

    rollup的这个用法在我们做一些复杂的中国式报表时还是能大有用武之地的。

    转自:http://blog.csdn.net/zhaozhongju/article/details/4177358

    展开全文
  • To make sure your ES modules are immediately usable by tools that work with CommonJS such as Node.js and webpack, you can use Rollup to compile to UMD or CommonJS format, and then point to that ...
  • Group by RollUp&Group by CUBE&GroupBy 区别 1、如果是ROLLUP(A, B, C)的话,首先会对(A、B、C)进行GROUP BY,然后对(A、B)进行GROUP BY,然后是(A)进行GROUP BY,最后对全表进行GROUP BY操作。 2、如果是...
  • SQL> select job,deptno,sum(sal) total_sal from scott.emp group by rollup(job,deptno);JOB DEPTNO TOTAL_SAL------...
  • ROLLUPGROUP BY CUBE ”的区别 首先这两个赐予的出现都是在分组里出现的,但是两者有着小小的区别。 首先是当查询条件为一个时:(如下) 那么此时两者的结果并没有什么区别,最后所得的查询结果一样:...
  • group by rollup

    千次阅读 2011-05-15 22:01:00
    首先引用ITPUB上的总结: rollup(a,b,c)----------------> 从右到底递减汇总 ====>group by a,b,c (减0次) UNION ALL ====>group by a,b (减1次) UNION ALL ====>group by a...
  • Group By Rollup

    2019-03-14 11:41:00
    Rollupgroup by组合使用,可对分组结果进行进一步的汇总。 创建数据表 select * from emp_test (1) rollup单个字段 如按照country字段进行分组,并在最后追加一条汇总所有country的值 select ...
  • groupby rollup

    2008-07-21 15:58:00
    select ( case UnitFlg.Sexcd when 1 then 男性 when 2 then 女性 else 総計 end ) sex,-- UnitFlg.bSexcd, (case UnitFlg.agescope when 0 then 30~39 
  • group by cube & rollup

    2014-10-30 13:57:21
    oracle group byrollup和cube的区别: Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句。如果是ROLLUP(A, B, C)的话, 首先会对(A、B、C)进行GROUP BY,然后对(A、B)进行GROUP BY,然后是(A)...
  • 一、分组依据为一列时 1、使用group by分组查询 select exam_no,avg (result) as 平均分 from result_info...2、使用group by rollupgroup by cube的结果 select exam_no,avg(result) as 平均分 from result...
  • GROUP BYROLLUP

    2016-11-06 14:19:07
    AS RP FROM sefiia_registered_outlet_rs GROUP BY branch,cluster WITH ROLLUP </code></pre> <p>result: <pre><code>--------------------------------- |Branch |Cluster |Point |RP | ----------------------...
  • 假设有表test1,数据如下: COL1 COL2 COL5 1 a  10 1 b  10 1 c  10 1 d  10 1 e  10 1 f  20 2 a
  • 建表:group_test ;字段:room_id 车间; job 岗位; name 姓名;salary 薪资; create table group_test (room_id int, job varchar2(10), name varchar2(10), salary int); 插入数据: insert into group_test...
  • 本文主要介绍,报表在使用group by rollupgroup bycube后的辅助函数。 CREATE TABLE TEST8 ( "ID" NUMBER, "ORDERID" NUMBER, "PRODUCTID" NUMBER, "PRICE" NUMBER(10,2), "QUANTITY" NUMBE...

空空如也

1 2 3 4 5 ... 20
收藏数 4,880
精华内容 1,952
关键字:

rollup