展开

关键词

SQL grouping

SQL grouping 解决 OLAP 场景总计与小计问题,其语法分为几类,但要解决的是同一个问题: ROLLUP 与 CUBE 是封装了规则的 GROUPING SETS,而 GROUPING SETS GROUPING SETS GROUP BY GROUPING SETS 可以指定任意聚合项,比如我们要同时计算总计与分组合计,就要按照空内容进行 GROUP BY 进行一次 sum,再按照 city 进行 GROUP BY 再进行一次 sum,换成 GROUPING SETS 描述就是: SELECT city, area, sum(people) FROM test GROUP BY GROUPING 函数 GROUPING 对于超级分组记录产生的 NULL,是可以被 GROUPING() 函数识别为 1 的: SELECT GROUPING(city), GROUPING(area), sum(people , CASE WHEN GROUPING(area) = 1 THEN '小计' ELSE area END, sum(people) FROM test GROUP BY GROUPING SETS(

13930

Lucene:Grouping组查询

lucene的联想词是在org.apache.lucene.lucene-grouping包下边,提供了组查询功能的支持。 简介 Grouping主要为用户提供了处理不同lucene的中含有相同filed的不同doc的分组统计。 <! > <version>5.5.2</version> </dependency> Grouping 1. ; import org.apache.lucene.search.grouping.GroupingSearch; import org.apache.lucene.search.grouping.SearchGroup ; import org.apache.lucene.search.grouping.TopGroups; import org.apache.lucene.search.grouping.term.TermAllGroupsCollector

60610
  • 广告
    关闭

    腾讯云开发者社区系列公开课上线啦!

    Vite学习指南,基于腾讯云Webify部署项目。

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

    Hive 多分组函数GROUPING SETS,GROUPING__ID,CUBE,ROLLUP

    前言 GROUPING SETS, GROUPING__ID, CUBE, ROLLUP 这几个分析函数通常用于OLAP中, 不能累加,而且需要根据不同维度上钻和下钻的指标统计, 比如,分小时 __ID FROM lxw1234 GROUP BY month,day GROUPING SETS (month,day) ORDER BY GROUPING__ID; 结果: month FROM lxw1234 GROUP BY month,day GROUPING SETS (month,day,(month,day)) ORDER BY GROUPING__ID; j结果: CUBE ORDER BY GROUPING__ID; 结果: month day uv GROUPING__ID ----------- BY month,day WITH ROLLUP ORDER BY GROUPING__ID; 结果: month day uv GROUPING

    1.1K10

    Hive窗口函数05-GROUPING SETS、GROUPING__ID、CUBE、ROLLUP

    Hive窗口函数GROUPING SETS、GROUPING__ID、CUBE、ROLLUP入门 1. 注意: grouping__id中的__是两个下划线 grouping__id需要与grouping sets()或cube或rollup一起使用,否则会报错 select month, day select month, day, count(distinct cookieid) as uv, grouping__id from cookie5 group by month,day grouping sets (month,day,(month,day)) order by grouping__id; 结果: month day uv grouping__id 2015- SETS,GROUPING__ID,CUBE,ROLLUP

    79020

    聊聊storm的direct grouping

    序 本文主要研究一下storm的direct grouping direct grouping direct grouping是一种特殊的grouping,它是由上游的producer直接指定下游哪个task direct grouping的使用有如下几个步骤: 1、上游在prepare方法保存下游bolt的taskId列表 public class SentenceDirectBolt extends BaseRichBolt ; } 这里count-bolt作为split-bolt的下游,使用了directGrouping,同时指定了要接收的streamId为directStreamDemo1 小结 direct grouping 是一种特殊的grouping,它是由上游的producer直接指定下游哪个task去接收它发射出来的tuple。 streamId, List tuple)方法指定了下游的taskId以及要发送到的streamId doc Concepts Common Topology Patterns 关于Storm Stream grouping

    31710

    PG:什么是grouping sets

    ExecInitAgg中:可以看到组数等于组集合数(若没hash的话),每个分组中有numaggs个聚集 这里就需要理解什么是grouping sets。 PostgreSQL9.5版本引入了group by的分组集合功能,提供了GROUPING SETS,CUBE,ROLLUP参数。 那么再看下GROUPING SETS语法: 有3种聚合分类:1)针对name进行分组然后求sum值;2)针对class进行分组,然后求sum值;3)grouping sets种的空,表示所有行都聚合到一个分组中 需要注意,grouping sets的集合中,一个括号一个分组,如下(name,class)为一个分组。该语句等价于普通的group by。 总结:grouping sets中有一个集合,则有一个聚合;若有2个集合,则2个聚合。

    12140

    聊聊storm的direct grouping

    序 本文主要研究一下storm的direct grouping storm-5-728.jpg direct grouping direct grouping是一种特殊的grouping,它是由上游的 direct grouping的使用有如下几个步骤: 1、上游在prepare方法保存下游bolt的taskId列表 public class SentenceDirectBolt extends BaseRichBolt ; } 这里count-bolt作为split-bolt的下游,使用了directGrouping,同时指定了要接收的streamId为directStreamDemo1 小结 direct grouping 是一种特殊的grouping,它是由上游的producer直接指定下游哪个task去接收它发射出来的tuple。 streamId, List tuple)方法指定了下游的taskId以及要发送到的streamId doc Concepts Common Topology Patterns 关于Storm Stream grouping

    37440

    新特性解读 | GROUPING() 函数用法解析

    接下来 GROUPING() 函数准备上场…… GROUPING() 函数 GROUPING() 函数用来返回每个分组是否为 ROLLUP 结果,是为 1 否为 0。 mysql> SELECT r1 -> , if(GROUPING(r1) = 1, '汇总', '正常记录') AS grouping_r1 -> , r2 -> , if(GROUPINGGROUPING() 函数包含多个参数时,按照以下方式来返回结果: GROUPING(r1,r2) 等价于 GROUPING(r2) + GROUPING(r1) << 1 GROUPING(r1 等价于 GROUPING(r3) + GROUPING(r2) << 1 + GROUPING(r1) << 2 以此类推 再次来改下以上 SQL,用 (GROUPING(r2) + (GROUPING (r1) << 1)) 来替换 GROUPING(r1,r2) mysql> SELECT r1, r2,(grouping(r2) + (grouping(r1) << 1)) grouping_r1

    19730

    Hive Grouping Sets,CUBE与ROLLUP

    这篇文章描述了 SELECT 语句 GROUP BY 子句的增强聚合功能 GROUPING SETS。GROUPING SETS 子句是 SELECT 语句的 GROUP BY 子句的扩展。 在Hive 0.10.0版本中添加了 Grouping sets,CUBE 和 ROLLUP 运算符以及 GROUPING__ID 函数。 GROUPING SETS GROUP BY 中的 GROUPING SETS 子句允许我们在同一记录集中指定多个 GROUP BY 选项。 所有 GROUPING SET 子句都可以逻辑表示为 UNION 连接的几个 GROUP BY 查询。下面展示了几个这样的等价示例。这有助于我们了解 GROUPING SETS 子句的思想。 Grouping__ID GROUPING SETS 会对 GROUP BY 子句中的列进行多维组合,结果整体展现,对于没有参与 GROUP BY 的那一列置为 NULL 值。

    2.6K31

    玩转数据库之 Group by Grouping

    今天我们用Group 和Grouping实现它,并总结一下它俩。 Grouping :指示是否聚合 GROUP BY 列表中的指定列表达式。 在结果集中,如果 GROUPING 返回 1 则指示聚合;                 返回 0 则指示不聚合。 我们看到了好多NULL数据,而且很有规律 这些规律我们可以用Grouping 看到 select Category_ID , GROUPING(Category_ID) as Category_IDGP , Category_Name, GROUPING(Category_Name) as Category_NameGP, CategoryID, GROUPING(CategoryID , Category_Name, GROUPING(Category_Name) as Category_NameGP, Product_Name, GROUPING(Product_Name

    38850

    深入理解 SQL 中的 Grouping Sets 语句

    本文首先简单介绍 Grouping Sets 的用法,然后以 Spark SQL 作为切入点,深入解析 Grouping Sets 的实现机制。 Grouping Sets 简介 Spark SQL 官方文档中 SQL Syntax 一节对 Grouping Sets 语句的描述如下: Groups the rows for each grouping Grouping Sets 的执行计划 从执行结果上看,Grouping Sets 版本和 Union All 版本的 SQL 是等价的,但 Grouping Sets 版本更加简洁。 而且,每个 grouping set 对应的 spark_grouping_id 列的值都是固定的,比如 (city) 对应的 spark_grouping_id 为 1。 spark_grouping_id 给每个 grouping set 进行编号,这样,即使在 Expand 阶段把数据先联合起来,在 Aggregate 阶段(把 spark_grouping_id 加入到分组规则

    7910

    R语言中的循环函数(Grouping Function)

    R语言中有几个常用的函数,可以按组对数据进行处理,apply, lapply, sapply, tapply, mapply,等。这几个函数功能有些类似,下面介...

    9120

    PS模块分组WBS元素(Grouping WBSE)技术实现细节

    所以为了避免上文出现的情况,之前对分组WBS元素进行了介绍,可以点击跟着团子学SAP:项目物料的需求汇总-Grouping WBS回顾相关内容。 (2)后台配置:激活MRP组分组 配置路径:SPRO-Project System-Material-Procurement-Activate MRP Group for Requiremments Grouping 在此场景下可以为外购件和自制件分别创建对应的MRP组,但工厂下外购件的MRP组则勾选Grouping,自制件对应的MRP组在此配置中不勾选Grouping指示符。 (3)前台设定:物料主数据设定 后台配置完成后需要在前台物料主数据中MRP1视图中分配相应的MRP组 后续MRP运行效果可参照历史文章跟着团子学SAP:项目物料的需求汇总-Grouping WBS 拓展阅读 相关事务代码: GRM8 - Maintain Grouping WBS Elements GRM4 - Assign WBS Elements Individually GRM3 - Assign WBS

    28620

    介绍一种非常好用汇总数据的方式GROUPING SETS

    我将举例展示给大家使用GROUPING SETS操作符来完成这个“混合的结果集”。    2.使用 GROUPING SETS操作符,结合GROUP BY一起在一个语句中实现。 本文中,我会展示如何使用GROUPING SETS来实现这一目的。 ), --1st grouping set (YEAR(OrderDate),MONTH(OrderDate)) --2nd grouping set ); GO 结果集跟之前的一模一样。 SETS ( YEAR(OrderDate), --1st grouping set (YEAR(OrderDate),MONTH(OrderDate)), --2nd grouping set () 如果非要那个为空字段,需要使用 GROUPING 或者 GROUPING_ID 函数判断是否NULL来自GROUPING SETS 操作符。

    544110

    SAP 使用BP创建供应商报错-You cannot create a vendor with grouping G001-对策

    SAP S4HANA 使用BP创建供应商报错 - You cannot create a vendor with grouping G001 - 对策 上午收到客户财务部门的用户提出的一个紧急的问题,说是在 1), 双击报错信息,试图找到详细的说明文字,却发现只有如下的2行: You cannot create a vendor with grouping G001. Message no.

    10520

    Apache Hive Cube

    Apache Hive Cube (维度组合聚合) Apache Hive GROUPING SETS,GROUPING__ID,CUBE,ROLLUP GROUPING SETS,GROUPING month, day, COUNT(DISTINCT cookieid) AS uv, GROUPING__ID FROM a2data.test GROUP BY month,day GROUPING SETS (month,day) ORDER BY GROUPING__ID; month day uv GROUPING__ID ----------- ID FROM a2data.test GROUP BY month,day GROUPING SETS (month,day,(month,day)) ORDER BY GROUPING__ID WITH CUBE ORDER BY GROUPING__ID; month day uv GROUPING__ID ----

    55820

    Hive高阶分析函数

    GROUPING SETS 示例:实现同一数据集的多重group by操作。事实上GROUPING SETS是多个GROUP BY进行UNION ALL操作的简单表达。 __ID FROM data GROUP BY year_month,date GROUPING SETS (year_month,date) ORDER BY GROUPING__ID; 结果: +----------+----------+----+------------+ |year_month|date |pv |grouping__id| +----------+--- data GROUP BY date; GROUPING__ID,表示结果属于哪一个分组集合。 BY GROUPING__ID; 结果: +----------+----------+----+------------+ |year_month|date |pv |grouping

    18920

    别说了,GROUP BY 我都不会!

    GROUPING GROUPING()函数只能配合 ROLLUP 和 CUBE 使用,GROUPING()接收一列,如果此列不为空则返回0,如果为空则返回1. GROUPING SETS GROUPING SETS 与 CUBE 有点类似,CUBE是对参数进行自由组合进行分组。 GROUPING_ID() GROUPING_ID()配合GROUPING()函数使用,GROUPING_ID(A,B)的值由GROUPING(A)与GROUPING(B)的值决定,如果GROUPING (A)为1,GROUPING(B)为0,则GROUPING_ID(A,B)的值为 10,十进制的 3. SELECT factory, department, GROUPING(factory), GROUPING(department), GROUPING_ID(factory,department),

    21320

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

    对比上面的没有使用GROUPING函数的结果集我们发现 ? 当orderid为null值的时候grouping(orderid)的值为1,反之为0 所以:根据这个特点我们可以推断出GROUPING函数的用法: GROUPING(字段),如果字段值为null,GROUPING 通过GROUPING(字段名)的这个特点,在结果case when then else end函数,就可以将null值修改为任何字段名类型的值了,代码如下: select case GROUPING(orderid ok,猜想二符合i提出的需求 ii、总结grouping sets的功能 根据上面的猜想大致可以推出grouping sets的功能:grouping by是group by的集合 GROUP BY GROUPING GROUP BY GROUPING SETS ((A,B,C)) 等价与 GROUP BY A,B,C GROUP BY GROUPING SETS (A,(B,C)) 等价与

    61070

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

    二、使用GROUPING函数处理汇总结果中的空值 GROUPING函数仅在使用ROLLUP和CUBE查询中使用,可以接受一列,其结果返回为或者,如果列值为空,则返回,否则返回 --单列使用GROUPING -- 0 10 8750 0 20 10875 0 30 9400 1 29025 --使用CASE子句转换GROUPING函数的返回值 SQL> SELECT CASE GROUPING SETS 子句列出小计 --GROUPING SETS 子句仅返回小计的记录 --注意GROUPING SETS的用法是替换掉ROLLUP 或CUBE SQL> SELECT deptno,job 函数和HAVING子句过滤结果集 --GROUPING_ID函数接受一列或多列输入,返回一个十进制的值 --GROUPING_ID返回值为调用GROUPING函数的组合结果 --如0 0 ==> ) dept_grp,GROUPING(job) job_grp, 2 GROUPING_ID(deptno,job),SUM(sal) 3 FROM emp 4 WHERE deptno

    34630

    扫码关注腾讯云开发者

    领取腾讯云代金券