• GROUP BY ROLLUP和CUBE 用法


    ROLLUP和CUBE 用法     
          Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句。

           如果是Group by  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操作。

           grouping_id()可以美化效果。除了使用GROUPING函数,还可以使用GROUPING_ID来标识GROUP BY的结果。

           也可以 Group by Rollup(A,(B,C)) ,Group by A Rollup(B,C),…… 这样任意按自己想要的形式结合统计数据,非常方便。

    Rollup():分组函数可以理解为group by的精简模式,具体分组模式如下:

      Rollup(a,b,c): (a,b,c),(a,b),(a),(全表)

    Cube():分组函数也是以group by为基础,具体分组模式如下:

      cube(a,b,c):(a,b,c),(a,b),(a,c),(b,c),(a),(b),(c),(全表)

    DROP TABLE TEST_GROUPBY 
    
    
    CREATE TABLE TEST_GROUPBY(
    ClassName          nvarchar(20),   --班级
    StudentName        nvarchar(20),   --姓名
    SubjectName        nvarchar(20),   --科目
    Scores             INT             --分数
    )
    
    DELETE FROM TEST_GROUPBY
    
    INSERT INTO TEST_GROUPBY SELECT '高一(1)班','王小贱','数学',10
    INSERT INTO TEST_GROUPBY SELECT '高一(1)班','王小贱','英语',10
    INSERT INTO TEST_GROUPBY SELECT '高一(2)班','李神瑛','英语',10
    INSERT INTO TEST_GROUPBY SELECT '高一(2)班','董昕辰','英语',10
    
    
    SELECT ClassName,StudentName,SubjectName,SUM(Scores) AS Scores 
    FROM   TEST_GROUPBY
    GROUP BY ROLLUP (ClassName,StudentName,SubjectName)
    
    SELECT ClassName,StudentName,SubjectName,SUM(Scores) AS Scores 
    FROM   TEST_GROUPBY
    GROUP BY ROLLUP (ClassName,(StudentName,SubjectName))
    
    
    SELECT ClassName,StudentName,SubjectName,SUM(Scores) AS Scores 
    FROM   TEST_GROUPBY
    GROUP BY ROLLUP ((ClassName,StudentName),SubjectName)
    
    
    SELECT ClassName,StudentName,SubjectName,SUM(Scores) AS Scores 
    FROM   TEST_GROUPBY
    GROUP BY cube (ClassName,StudentName,SubjectName)
    

      

  • 相关阅读:
    【学习笔记】查看CUDA版本
    如果Visual Studio太大,不妨还是用VSCode开发C#项目吧
    Visual Studio npm配置淘宝镜像
    c++读写锁--读者写者问题
    c++内存对象模型--vs2017下的分析,32位
    android作业
    android连接数据库
    android第十周(增删改查)
    android-购物车
    android计算器
  • 原文地址:https://www.cnblogs.com/DBArtist/p/5090901.html
Copyright © 2020-2023  润新知