zoukankan      html  css  js  c++  java
  • Oracle:grouping和rollup

    Oracle grouping和rollup简单测试

    SQL> select department_id,sum(salary) from employees where department_id in(10,30,90,100) group by department_id order by department_id;
    DEPARTMENT_ID SUM(SALARY)
    ------------- -----------
               10        4400
               30       24900
               90       58000
              100       51608
    
    SQL> select department_id,first_name,sum(salary) from employees where department_id in(10,30,90,100) group by (department_id,first_name) order by department_id;
    DEPARTMENT_ID FIRST_NAME           SUM(SALARY)
    ------------- -------------------- -----------
               10 Jennifer                    4400
               30 Alexander                   3100
               30 Den                        11000
               30 Guy                         2600
               30 Karen                       2500
               30 Shelli                      2900
               30 Sigal                       2800
               90 Lex                        17000
               90 Neena                      17000
               90 Steven                     24000
              100 Daniel                      9000
              100 Ismael                      7700
              100 John                        8200
              100 Jose Manuel                 7800
              100 Luis                        6900
              100 Nancy                      12008
    16 rows selected
    
    SQL> select department_id,first_name,sum(salary) from employees where department_id in(10,30,90,100) group by rollup(department_id,first_name) order by department_id;
    DEPARTMENT_ID FIRST_NAME           SUM(SALARY)
    ------------- -------------------- -----------
               10 Jennifer                    4400
               10                             4400
               30 Alexander                   3100
               30 Den                        11000
               30 Guy                         2600
               30 Karen                       2500
               30 Shelli                      2900
               30 Sigal                       2800
               30                            24900
               90 Lex                        17000
               90 Neena                      17000
               90 Steven                     24000
               90                            58000
              100 Daniel                      9000
              100 Ismael                      7700
              100 John                        8200
              100 Jose Manuel                 7800
              100 Luis                        6900
              100 Nancy                      12008
              100                            51608
    DEPARTMENT_ID FIRST_NAME           SUM(SALARY)
    ------------- -------------------- -----------
                                            138908
    21 rows selected
    
    SQL> select department_id,grouping(department_id),first_name,grouping(first_name),sum(salary) from employees where department_id in(10,30,90,100) group by rollup(department_id,first_name) order by department_id;
    DEPARTMENT_ID GROUPING(DEPARTMENT_ID) FIRST_NAME           GROUPING(FIRST_NAME) SUM(SALARY)
    ------------- ----------------------- -------------------- -------------------- -----------
               10                       0 Jennifer                                0        4400
               10                       0                                         1        4400
               30                       0 Alexander                               0        3100
               30                       0 Den                                     0       11000
               30                       0 Guy                                     0        2600
               30                       0 Karen                                   0        2500
               30                       0 Shelli                                  0        2900
               30                       0 Sigal                                   0        2800
               30                       0                                         1       24900
               90                       0 Lex                                     0       17000
               90                       0 Neena                                   0       17000
               90                       0 Steven                                  0       24000
               90                       0                                         1       58000
              100                       0 Daniel                                  0        9000
              100                       0 Ismael                                  0        7700
              100                       0 John                                    0        8200
              100                       0 Jose Manuel                             0        7800
              100                       0 Luis                                    0        6900
              100                       0 Nancy                                   0       12008
              100                       0                                         1       51608
    DEPARTMENT_ID GROUPING(DEPARTMENT_ID) FIRST_NAME           GROUPING(FIRST_NAME) SUM(SALARY)
    ------------- ----------------------- -------------------- -------------------- -----------
                                        1                                         1      138908
    21 rows selected

    rollup为按分组统计小计和。
    grouping(department_id)和grouping(first_name)
    如果当前列所在的行为空,则显示为1,不为空则显示为0;

  • 相关阅读:
    模态框获取内容jQuery
    jQuery支持链式编程,一句话实现左侧table页+常用筛选器总结
    jquery实现全选、取消反选、加JavaScript三元运算(三种法法实现反选)
    用dom1来实现,根据光标移动自动给表单加上背景色,光标移开自动去除背景色
    JavaScript两种创建标签的的方法,实现点击按钮让text自增
    vue前端路由搜索功能实现
    pycharm配置vue
    QT全局事件和绑定
    mysql事务、锁
    web前端上传文件按钮自定义样式
  • 原文地址:https://www.cnblogs.com/rusking/p/4600206.html
Copyright © 2011-2022 走看看