zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    《自动化测试工程师进阶之路》系列课程
    开发测试工程师系列课程
    AQA新加入手机自动化测试版块
    持续集成体系搭建服务
    开源自动化测试White与UIA
    TIB自动化测试快讯 自动化测试空间一周精选(201119)
    周六广州软件测试俱乐部圆桌会议3期
    Java白盒测试训练
    TIB自动化测试快讯 自动化测试空间一周精选(2012220)
    TIB自动化测试快讯 自动化测试空间一周精选(201226)
  • 原文地址:https://www.cnblogs.com/guilingyang/p/6368090.html
Copyright © 2011-2022 走看看