zoukankan      html  css  js  c++  java
  • 第八章 SQL高级处理 8-2 GROUPING运算符

    一、同时得到合计行
    合计行是不指定聚合键时得到的汇总结果。

    UNION ALL与UNION的不同之处是它不会对结果进行排序,因此比UNION性能更好。
     
    二、ROLLUP——同时得出合计和小计
    GROUPING 运算符包含以下3种:
    (1)ROLLUP
    (2)CUBE
    (3)GROUPING SETS
    注:目前PostgreSQL和MySQL并不支持GROUPING运算符(MySQL仅支持ROLLUP)。
     
    1、ROLLUP的使用方法

    三、GROUPING函数——让NULL更加容易分辨
    为了避免混淆,SQL 供了一个用来判断超级分组记录的 NULL 的特定函数 —— GROUPING 函数。该函数在其参数列的值为超级分组记录 所产生的 NULL 时返回 1,其他情况返回 0

    在实际业务中,需要获取包含合计或者小计的汇总结果(这种情况是最多的)时,就可以使用ROLLUP和GROUPING函数来实现了。
     
    四、用数据来搭积木
    所谓CUBE,就是将GROUP BY子句中聚合键的“所有可能组合”的汇总结果集中到一个结果中。
    因此,组合的个数就是 2n(n 是聚合键的 个数)。2的n次方。
    注:可以把CUBE理解为使用聚合键进行切割的模块堆积成一个立方体。
     
    五、GROUPING SETS——得到期望的积木
    GROUPING SETS可以从ROLLUP和CUBE中取出部分记录。
    然而,由于期望获得不固定结果的情况少之又少,因此与ROLLUP或者CUBE比起来,使用GROUPING SETS的机会也就很少了。
     
  • 相关阅读:
    jquery选择器
    frameset的target属性
    最长回文子串 南邮NOJ 1100
    最长回文子串 南邮NOJ 1100
    最长回文子串 南邮NOJ 1100
    NOJ 蛇形填数 1094
    NOJ 蛇形填数 1094
    NOJ 蛇形填数 1094
    NOJ 蛇形填数 1094
    开灯问题 南邮NOJ 1589 (另一种解法)
  • 原文地址:https://www.cnblogs.com/mumulin99/p/9837522.html
Copyright © 2011-2022 走看看