• Oracle分组小计、总计示例(grouping sets的使用)


    转自:https://www.cnblogs.com/xiaojianblogs/p/8047036.html

    1.首先创建一个表 

    Sql代码
    [sql] view plain copy
     
    1. create table TE  
    2. (  
    3.   ID        VARCHAR2(2),  
    4.   T_CODE    VARCHAR2(4),  
    5.   T_NAME    VARCHAR2(4),  
    6.   T_AMOUNT  INTEGER,  
    7.   T_DEPT    VARCHAR2(4),  
    8.   T_PROJECT VARCHAR2(4),  
    9.   T_TYPE    VARCHAR2(1)  
    10. )  



    2.录入数据如下: 

    Sql代码
    [sql] view plain copy
     
    1. insert into te (ID, T_CODE, T_NAME, T_AMOUNT, T_DEPT, T_PROJECT, T_TYPE)  
    2. values ('1', '1', '1', 10, '总部', '90', '0');  
    3.   
    4. insert into te (ID, T_CODE, T_NAME, T_AMOUNT, T_DEPT, T_PROJECT, T_TYPE)  
    5. values ('2', '2', '2', 20, '总部', '70', '0');  
    6.   
    7. insert into te (ID, T_CODE, T_NAME, T_AMOUNT, T_DEPT, T_PROJECT, T_TYPE)  
    8. values ('3', '3', '3', 30, '分1', '60', '0');  
    9.   
    10. insert into te (ID, T_CODE, T_NAME, T_AMOUNT, T_DEPT, T_PROJECT, T_TYPE)  
    11. values ('4', '4', '4', 40, '分1', '50', '0');  
    12.   
    13. insert into te (ID, T_CODE, T_NAME, T_AMOUNT, T_DEPT, T_PROJECT, T_TYPE)  
    14. values ('5', '5', '5', 50, '分2', '40', '0');  
    15.   
    16. insert into te (ID, T_CODE, T_NAME, T_AMOUNT, T_DEPT, T_PROJECT, T_TYPE)  
    17. values ('6', '6', '6', 60, '分2', '30', '0');  



    3.查询全表查看

    1. [java] view plain copy
       
      1. select * from te;  





      4.用t.t_dept, t.t_project进行分组查询 

    Sql代码
    [sql] view plain copy
     
    1. select t.t_dept, t.t_project, sum(t.t_amount) from te t  
    2. group by t.t_dept, t.t_project;  



    结果如下: 



    5.用t.t_dept, t.t_project,并使用t.t_dept来做小计 

    Sql代码
    [sql] view plain copy
     
    1. select t.t_dept, t.t_project, sum(t.t_amount) from te t  
    2. group by grouping sets ((t.t_dept, t.t_project), t.t_dept);  



    结果如下: 

     

    6.用t.t_dept, t.t_project,并使用t.t_dept来做小计,并做一次总计 

    Sql代码
    [sql] view plain copy
     
    1. select t.t_dept, t.t_project, sum(t.t_amount) from te t  
    2. group by grouping sets ((t.t_dept, t.t_project), t.t_dept, null);  



    结果如下: 






    7.使用grouping(字段) 

    Sql代码
    [sql] view plain copy
     
    1. select grouping(t.t_dept),t.t_dept, t.t_project, sum(t.t_amount) from te t  
    2. group by grouping sets ((t.t_dept, t.t_project), t.t_dept, null);  




    结果如下: 



    注意: 在存储过程中null不会正确执行 需要改成()
    如 

    Sql代码
    [sql] view plain copy
     
    1. select grouping(t.t_dept),t.t_dept, t.t_project, t.t_type, sum(t.t_amount) from te t     
    2. group by grouping sets ((t.t_dept, t.t_project,t.t_type), (t.t_dept,t.t_project),t.t_dept, ());   
  • 相关阅读:
    web渗透系列--信息收集
    机器学习之常用知识点
    机器学习之特征选择和特征抽取
    NLP之关键词提取(TF-IDF、Text-Rank)
    NLP之CRF应用篇(序列标注任务)
    NLP之概率图模型
    NLP之预训练
    NLP之词向量
    NLP之分词
    机器学习之常用损失函数和优化方法
  • 原文地址:https://www.cnblogs.com/sharpest/p/11240345.html
Copyright © 2020-2023  润新知