zoukankan      html  css  js  c++  java
  • oracle group by中cube和rollup字句的使用方法及区别

      oracle group by中rollup和cube的区别: 
      Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句。

      如果是ROLLUP(A, B, C)的话,先会对(A、B、C)进行GROUP BY,然后对(A、B)进行GROUP BY,然后是(A)进行GROUP BY,最后对全表进行GROUP BY操作;

      如果是GROUP BY CUBE(A, B, C),则首先会对(A、B、C)进行GROUP BY,然后依次是(A、B),(A、C),(A),(B、C),(B),(C), 最后对全表进行GROUP BY操作。 

      测试数据: 
    /* 
      Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句。 
    */ 
    --创建表 

    create table fzq 
    ( 
        name varchar(20), 
        calss varchar(2), 
        kemu  varchar(4), 
        chengji varchar(3) 
        
    ) 
    测试表

    --插入数据 

    insert into fzq values 
    ('11','1','数学','90');
    insert into fzq values 
    ('11','1','语文','68'); 
    insert into fzq values 
    ('12','1','数学','90'); 
    insert into fzq values 
    ('12','1','语文','88'); 
    insert into fzq values 
    ('22','2','数学','70'); 
    insert into fzq values 
    ('22','2','语文','88'); 
    insert into fzq values 
    ('33','2','数学','95'); 
    insert into fzq values 
    ('33','2','语文','98');
    
    commit;
    测试数据
    • select * from fzq;

    • select calss,name,sum(chengji) from fzq group by calss,name;

    • select calss,name,sum(chengji) from fzq group by cube(calss,name) order by calss;

    • select calss,name,sum(chengji) from fzq group by rollup(calss,name) order by calss;

    • select calss,name,sum(chengji) from fzq group by grouping sets(calss,name);

     

  • 相关阅读:
    洛谷 1.5.1 Number Triangles 数字金字塔
    洛谷 Sorting a Three-Valued Sequence 三值的排序
    洛谷 Transformations 方块转换
    POJ 1401 Factorial
    Java面试那些事
    JVM字节码执行引擎
    一个工作三年左右的Java程序员和大家谈谈从业心得
    浅谈volatile关键字
    Java内存模型
    Integer 错误的加锁
  • 原文地址:https://www.cnblogs.com/HondaHsu/p/4481218.html
Copyright © 2011-2022 走看看