首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用group by rollup和group by cube后的辅助函数

本文主要介绍,报表在使用group by rollup和group by cube后的辅助函数。...函数 使用GROUPING函数处理汇总结果(在使用group by rollup和group by cube后的结果集)中的空值。...null值全部改为了0 2、GROUPING  SETS函数 和哥前面的随笔一样,不知道它的功能没关系,先试一试,在根据结果集推出来他的功能,不多说,上代码: i、现在需要求出每个订单下每个产品的订单数...GROUP BY GROUPING SETS ((A,B,C)) 等价与 GROUP BY A,B,C GROUP BY GROUPING SETS (A,(B,C)) 等价与...3、GROUP BY ,CUBE 或ROLLUP 中同时使用一列的处理 i、问题:在日常开发中可能会存在GROUP BY 或者GROUP BY CUBE 或者GROUP BY ROLLUP或者它们中组合使用到同一列的情况

1.9K70
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    基于Hive的数据立方体实践

    sets 实现 Data Cube 观察对比可知,union all与grouping sets统计结果一致,但grouping sets代码风格简洁易读、便于开发人员灵活配置统计维度。...注意: (1)grouping sets中的所有字段,必须出现在group by之中; (2)grouping sets中的所有字段,必须出现在group by之中;grouping sets可包含多种粒度...grouping__id 返回对应于与行关联的 grouping 位向量的数字,在功能上等同于获取多个 grouping函数的结果并将它们连接成一个位向量(一串 1 和 0)。...其是为了将过滤条件提前到子查询中,以达到在map端尽量缩减数据的目的,碰巧遇到grouping__id先赋默认值的内置方法。...在开发数据立方体实践过程中,可根据实际场景选择grouping方法: 1. 在不确定维度组合情况下,推荐使用with cube 和 grouping__id搭配使用,灵活聚合; 2.

    1K30

    Hive中group by还能这样玩?

    但是不是觉得太繁琐了,其实hive中还有一个更高阶的分组函数,可以帮我们更加简洁的实现上面的功能,即Grouping Sets函数,我们可以把想要用于分组的列全都声明在Grouping Sets函数中,...其代码如下: select area,name,sum(cnt) as sum_cnt from default.salerinfo3 group by area,name grouping sets...可以看到,使用grouping sets必须首先用group by声明用于分组的列,如果不使用group by声明,报错如下: FAILED: ParseException line 5:0 cannot...recognize input near 'grouping' 'sets' '(' in table source 同样,用于分组的列,必须全都在group by中声明,如果grouping sets...by area grouping sets ((area),(name),(area,name)) SemanticException 6:23 [Error 10213]: Grouping sets

    80920

    《面试季》高频面试题-Group by的进阶用法

    一: Rollup、Cube、Grouping sets的介绍: 作用:   都是用于进行分组集合计算,不支持聚合函数中的DISTINCT或GROUP BY ALL子句,GROUP BY字句,ROLLUP...,他们是grouping sets的一个简单实用方式   区别:   1、cube生成分组中特定列所有可能的层次组合。   ...3、默认的group by语句相当于grouping set在grouping set后的参数填上所有group by。...GROUPING函数既可以与CUBE操作一起使用, 也可以与ROLLUP操作一起使用, 它能帮助你理解概要值是怎样产生的,就能区分哪些 NULL 是正常记录,哪些是 ROLLUP 的结果。。...使用:   GROUPING函数使用一个单独的列表示。在GROUPING函数中的expr必须匹配一个GROUP BY子句中的表达式, 该函数的返回值0或大于0。

    1.7K20

    Hive优化器原理与源码解析系列--优化规则HiveAggregateProjectMergeRule(十六)

    在某些情况下,此规则具有修剪的效果:聚合将使用比Projetct投影操作更少的列。 在CalciteAPI中关于构建Aggregate汇总操作对象组成元素。...是group_sets集合中分组ID(类似排列组合的分组ID,1组、2组、3组等)。...__ID FROM tab_test GROUP BY month,day 说明:grouping sets 只会根据,sets集合内每个元素单独分组:month、day、(month,day)三个分组...注意:group by中字段集合 要 包含 grouping sets()集合字段,否则会报错,即{group by} >={grouping sets} 2)onMatch方法逻辑详解...handle "GROUP BY expression" return null; } } 2 .遍历调用汇总函数,函数列表,判断AGG引用的字段是否在Project投影中引用,而且是字段引用

    69720

    SQL 基础--> ROLLUP与CUBE运算符实现数据汇总

    ============================ 在使用ROLLUP与CUBE运算符实现数据的汇总是,Oracle与SQL Server使用了不同的写法,但其实质是一样的,都遵循了SQL规范。...ROLLUP与CUBE运算符都是对GROUP BY 子句的扩展 SQL Server中的用法 GROUP BY col1,col2 WITH ROLLUP | CUBE ; Oracle 中的用法...关于在SQL Sever中ROLLUP与CUBE运算符,请参照:ROLLUP 与CUBE 运算符的使用 一、演示ROLLUP 及CUBE 的使用 --使用常规的GROUP BY 实现数据的汇总...BY ,CUBE 或ROLLUP 中同时使用一列的处理 --即某些列同时在GROUP BY 子句和CUBE(ROLLUP)中存在 --结果中可以看出多出了一些重复的列 SQL> SELECT deptno...,col2...)中的列数 CUBE: 创建所有可能的小计 1.结果集将会包括相应rollup的所有值并加上额外的合并 2.如果有n类在cube中规定,将会有的n次方的小计返回 GROUPING

    1.3K30

    HiveCube在有赞的实践

    创建Cube的工具有很多,本文重点介绍在多维汇总场景下,由传统开发模式替换为HiveCube开发模式过程中碰到的问题以及处理经验,主要包括以下方面的内容: 背景 理论 实践 二、背景 在今年上半年,我们接到公司一个项目...code: select dim1, dim2, count(*), grouping__id from t1 group by dim1, dim2 grouping sets ( (dim1...hive1.0以后,grouping__id的生成算法与spark一致。在hive1.0以前,生成算法与spark不一致。...四、实践 该部分内容重点介绍HiveCube在生产环境使用过程中碰到的问题以及处理经验 4.1 代码实现grouping__id 因为grouping__id的实现算法在Hive与Spark可能存在差异...4.8 HiveCube的拆分 假设随着业务和需求的发展,grouping sets包含的聚合维度一直在增长,到了100,200,300个,Cube还能扛得住压力吗?

    87530

    讲讲 group by 的plus版

    明细表 t 如下: 有一种最简单的方法就是,我们写5个 Sql 语句,然后将数据导出来在 Excel 中处理。5个 Sql 语句如下:想一下,我们要做上面的那个需求,我们应该怎么做呢?...最后出来的结果如下: 02|grouping sets 利用 union all 要比导出5个Sql然后再在 Excel 中处理简单多了,但是有没有发现上面的代码很长,很冗余。...就是我们今天要讲的group by的 plus 版。真名叫做 grouping sets。这个 plus 可以根据不同维度组合进行聚合。...group by后面放的字段表示要分组聚合的全部字段,grouping sets 后面放的是 group by 后面各种字段的组合,根据实际需求进行组合就行,组合字段用小括号括起来,也可以是单一字段。...在求取全国的成交量的时候其实是不需要分组聚合的,但是为了使用 grouping sets,所以我们在求取全国成交量的时候用 group by null。

    47030

    神奇的 SQL ,同时实现小计与合计,阁下该如何应对

    关于 小计与合计 ,大家肯定不会陌生,甚至很熟悉   或多或少都实现过这样的功能,尤其是涉及到报表统计的时候, 小计与合计 是绕不过去的坎   那有哪些实现方式了,我们今天就来盘一盘   GROUP...    你们不要怀疑我是不是在套娃,请把怀疑去掉,我就是在套娃!...GROUPING   考虑到 MySQL 8.0.30 不支持 CUBE 和 GROUPING SETS ,所以后面的 SQL 都基于 PostgreSQL 14.1 GROUPING 不会单独使用...GROUPING SETS   该运算符主要用于从 ROLLUP 或者 CUBE 的结果中取出部分记录   例如,如果希望从 GROUP BY CUBE(ware_category,registration_date...相比 ROLLUP 和 CUBE 相比, GROUPING SETS 的使用场景特别少,有所了解即可 总结   GROUPING   作用很明显,就是为了区分 超级分组记录 的 NULL 和原始数据 NULL

    43410
    领券