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);

     

  • 相关阅读:
    unigui+fastreport报表打印
    MySQL索引类型总结和使用技巧以及注意事项
    Vue.js 和 MVVM
    Go -- 中结构体与字节数组能相互转化
    iOS算法合集
    postman中 form-data、x-www-form-urlencoded、raw、binary的区别
    JS注入
    JS页面间传值
    上手ReactiveCocoa之基础篇
    数据结构与算法题整理
  • 原文地址:https://www.cnblogs.com/HondaHsu/p/4481218.html
Copyright © 2011-2022 走看看