• rollup&&cube


    group by 擴展 rollup&&cube

    --按job分組計算不同job的匯總工資

      SELECT job, SUM (sal)
        FROM emp
    GROUP BY job
    ORDER BY job;

    --向rollup傳遞一列

      SELECT job, SUM (sal)
        FROM emp
    GROUP BY ROLLUP (job)
    ORDER BY job;

    image

    --向rollup傳遞多列,根據job小計

      SELECT job, deptno, SUM (sal)
        FROM emp
    GROUP BY ROLLUP (job, deptno)
    ORDER BY job, deptno;

    image

    --修改傳遞給rollup的列的位置,根據部門小計

      SELECT deptno, job, SUM (sal)
        FROM emp
    GROUP BY ROLLUP (deptno, job)
    ORDER BY deptno, job;

    image

    --rollup與其它聚合函數使用,任何聚合函數都可以和rollup一起使用

      SELECT deptno, job, ROUND (AVG (sal), 2)
        FROM emp
    GROUP BY ROLLUP (deptno, job)
    ORDER BY deptno, job;

    image

    --使用cube子句

      SELECT deptno, job, SUM (sal)
        FROM emp
    GROUP BY CUBE (deptno, job)
    ORDER BY deptno, job;

    image

    --cube改變順序

      SELECT job, deptno, SUM (sal)
        FROM emp
    GROUP BY CUBE (job, deptno)
    ORDER BY job, deptno;

    image

    --grouping 返回0 1

      SELECT GROUPING (job), job, SUM (sal)
        FROM emp
    GROUP BY ROLLUP (job)
    ORDER BY job;

    image

    --轉換grouping返回值為有意義的值

      SELECT CASE GROUPING (job)
                       WHEN 1 THEN 'ALL JOBS'
                       ELSE job
                  END AS job,
                  SUM (sal)
        FROM emp
    GROUP BY ROLLUP (job)
    ORDER BY SUM (sal);

    image

    --grouping多列
      SELECT
      CASE GROUPING (deptno) WHEN 1 THEN  40 ELSE deptno END AS deptno,
      CASE GROUPING (job)      WHEN 1 THEN 'ALL JOBS'    ELSE job      END AS job,
             SUM (sal)
        FROM emp
    GROUP BY ROLLUP (deptno,job)
    ORDER BY deptno,job;

    image


    --cube與grouping一起使用
      SELECT
      CASE GROUPING (deptno) WHEN 1 THEN  40 ELSE deptno END AS deptno,
      CASE GROUPING (job)      WHEN 1 THEN 'ALL JOBS'    ELSE job      END AS job,
             SUM (sal)
        FROM emp
    GROUP BY cube (deptno,job)
    ORDER BY deptno,job;

    image

    --使用grouping sets只顯示小計結果
      SELECT deptno,job,
                  SUM (sal)
        FROM emp
    GROUP BY grouping sets (deptno,job)
    ORDER BY deptno,job;

    image

  • 相关阅读:
    java EL表达式中${param.name}详细
    javascript中常用坐标属性offset、scroll、client
    Oralce if ..elsif结构
    VS2013 字符串函数与VC不兼容问题解决方法
    Directory Instruction
    Timestamp
    GetCurrentTime() and CFile option
    MessageBox 参数说明
    单片机红外线接收算法
    IAR for MPS430 V7.12.1 编程规范
  • 原文地址:https://www.cnblogs.com/guilingyang/p/6368090.html
Copyright © 2020-2023  润新知