Sql 将(按…划分)与分组集相结合?

Sql 将(按…划分)与分组集相结合?,sql,hive,hiveql,rollup,grouping-sets,Sql,Hive,Hiveql,Rollup,Grouping Sets,我有以下交易表: 我想计算以下各项的总采购量: 产品 类别,即同一类别内所有产品的总数量 部门,即同一部门内所有产品的总数量 此外,应计算上述总数: 每位购物者 每个家庭/家庭同一家庭中所有购物者的总数量之和。 输出表应如下所示: 对于家庭来说,总数计算一次,然后复制到同一家庭中的每个购物者 为了计算整个表中产品/类别/部门的多个总计,我使用了一份报告中向我指出的分组集。所以我得到了总的数量 对于total_quantity_family,如一个简单得多的表中所指出的,使用超额分配是有意义的 然

我有以下交易表:

我想计算以下各项的总采购量:

产品 类别,即同一类别内所有产品的总数量 部门,即同一部门内所有产品的总数量 此外,应计算上述总数:

每位购物者 每个家庭/家庭同一家庭中所有购物者的总数量之和。 输出表应如下所示:

对于家庭来说,总数计算一次,然后复制到同一家庭中的每个购物者

为了计算整个表中产品/类别/部门的多个总计,我使用了一份报告中向我指出的分组集。所以我得到了总的数量

对于total_quantity_family,如一个简单得多的表中所指出的,使用超额分配是有意义的

然而,我不知道如何将两者结合起来。关于将超额分配与分组集相结合的信息并不多

我的查询如下所示:

选择 家庭id, 购物者身份证, 案例 当分组__ID=6时,则为“部门” 当分组__ID=5时,则为“类别” 当分组__ID=3时,则为“产品” 结束时为总水平类型, 案例 当分组__ID=6时,则为部门 当分组_uuid=5时,则为类别 当分组__ID=3时,则为产品 以id结束, 合计数量为购物者的总数量 -按族id划分的sumQuantity,产品作为总族数量 从…起 交易 分组 家庭id, 购物者身份证, 产品 类别 部门 分组集 家庭id、购物者id、产品、, 家庭id、购物者id、类别、, 家庭id、购物者id、部门 订购人 总水平类型; 如果超额分配不适用于我的情况,我的其他选择可能是:

按族id对事务进行分组,然后对结果运行分组集,然后使用事务返回。 也许是使用爆炸和侧视图的技巧? 出于可维护性的原因,我真的不想在单个版本和系列版本之间分离查询

注意:如果有帮助的话,我将Spark SQL与配置单元上下文一起使用

谢谢你的帮助。谢谢

编辑:这似乎有效:

... SUMquantity作为购物者的总数量, 案例 当分组__ID=6时,则按族_ID、部门对分区上的数量进行汇总 当分组__ID=5时,则按族_ID、类别对分区上的数量进行汇总 当分组_uuuid=3时,则按族_uid、乘积计算分区上的数量总和 以总数量系列结尾 ... 使用具有不同分区by子句的多重总和:

选择 家庭id, 购物者身份证, 总等级类型, 身份证件 总数量和个人数量, 总数量家庭 从…起 选择 家庭id, 购物者身份证, 大堆 命名为_STRUCT'id',产品, “总水平类型”、“产品”, “个人总数量”,按家庭id、购物者id、产品划分的总数量, “总数量系列”,按系列id划分的总数量,产品 , 命名为_STRUCT'id',类别, “总等级类型”、“类别”, “个人总数量”,按家庭id、购物者id、类别划分的总数量, “总数量家庭”,按家庭id划分的总数量,类别 , 命名为_STRUCT'id',部门, “总级别类型”、“部门”, “个人总数量”,按家庭id、购物者id、部门划分的总数量, “总数量家庭”,按家庭id划分的总数量,部门 AS数组_结构 从…起 交易 内线阵列结构的侧面视图已分解 订购人 总等级类型
我修改了您的查询,但由于某些原因无法编辑您的帖子。最后一个表包含同一个家庭id、购物者id、产品的多个交易。示例A、1、Kit Kat显示两次,尽管总数正确。所以,我认为一个小组是必要的。好的,我更新了你的帖子。然而,我无法让小组工作。