首页 > 其他分享 >GROUPING_SETS 用法

GROUPING_SETS 用法

时间:2024-09-06 09:27:09浏览次数:9  
标签:Product North sales 用法 SETS NULL GROUPING

在Hive中,`GROUPING SETS` 是一个用于生成多个分组聚合的SQL功能,它可以让你在一个查询中指定多个分组集,这样可以有效地生成多维度的汇总数据。下面我将通过一个例子来展示如何使用 `GROUPING SETS`,并创建一个Hive表以及插入十条数据进行演示。

### 步骤 1: 创建Hive表

首先,我们创建一个简单的销售数据表,包含商品名称、销售地区和销售额:

sql
CREATE TABLE sales_data (
product_name STRING,
region STRING,
sales_amount INT
);


### 步骤 2: 插入数据

接下来,向表中插入一些示例数据:

sql
INSERT INTO sales_data VALUES
('Product A', 'North', 100),
('Product A', 'South', 150),
('Product A', 'East', 200),
('Product A', 'West', 250),
('Product B', 'North', 200),
('Product B', 'South', 300),
('Product B', 'East', 400),
('Product B', 'West', 500),
('Product C', 'North', 150),
('Product C', 'South', 250);


### 步骤 3: 使用 GROUPING SETS

现在,我们使用 `GROUPING SETS` 来查询不同维度的销售总额。我们将计算每个产品的总销售额、每个地区的总销售额以及全体总销售额:

SELECT product_name, region, SUM(sales_amount) AS total_sales
FROM sales_data
GROUP BY GROUPING SETS (
    (product_name, region),  -- 每个产品在每个地区的销售额
    (product_name),          -- 每个产品的总销售额
    (region),                -- 每个地区的总销售额
    ()                       -- 全体总销售额
) order by  product_name ,region
;



product_name            region    total_sales
NULL                    NULL    2500
NULL                    East    600
NULL                    North    450
NULL                    South    700
NULL                    West    750
Product A                NULL    700
Product A                East    200
Product A                North    100
Product A                South    150
Product A                West    250
Product B                NULL    1400
Product B                East    400
Product B                North    200
Product B                South    300
Product B                West    500
Product C                NULL    400
Product C                North    150
Product C                South    250

 

标签:Product,North,sales,用法,SETS,NULL,GROUPING
From: https://www.cnblogs.com/mengbin0546/p/18399610

相关文章

  • 关于ybc_game库的用法(第一期)
    大家好,我是于翱睿,今天我给大家更新一期如何正确的使用ybc_game库,避免踩坑。首先,需要说的是:所有的图片必须放在images文件夹里,在代码中不用写“images/”同样,要想保存音频,所有的音频必须放在sounds文件夹中,在代码中不用写“sounds/”所有说明我都放到注释里了,注意仔细观察那......
  • UEFI —— Status Code用法
    PEI阶段用法是PeiServices中的一个组成。code:Edk2\MdeModulePkg\Universal\ReportStatusCodeRouter\Pei\ReportStatusCodeRouterPei.c整体逻辑:调用ReportStatusCode挂在gEfiPeiRscHandlerPpiGuid上的handler都会跑一便执行对应的callbackgEfiPeiRscHandlerPpiGuid用......
  • Django中celery的使用(非常简单的用法)
    1、https://www.cnblogs.com/hard-working-Bert/p/14236125.html这里主要展示一个最简单的django中的celery任务,为了让大家都可以用上celery。话不多说,首先给大家看一下我的目录  这里的TestCelery是我的项目名称,CeleryTask是app名称。 windows启动redis服务及修改配置文......
  • 【Moveit2】MoveGroupInterface设置目标姿态,然后创建一个计划到该姿态的运动路径,stati
    PlanandExecuteusingMoveGroupInterface//CreatetheMoveItMoveGroupInterfaceusingmoveit::planning_interface::MoveGroupInterface;automove_group_interface=MoveGroupInterface(node,"panda_arm");//SetatargetPoseautoconsttarget_p......
  • SQL数据库:SQL语句中的Select@@identity用法
    select@@identity的用法 使用select@@当最后一次插入记录时,identity自动生成ID如果您使用存储过程,将非常简单,代码如下:SET@NewID=@@IDENTITY说明:在一条INSERT、SELECTINTO或大容量复制语句完成后,@@IDENTITY它包含了这个句子产生的最终标识值。如果这个句子不影响......
  • Selector组件的用法
    文章目录知识回顾使用方法builder属性selector属性shouldRebuild属性child属性示例代码我们在上一章回中介绍了组件之间共享数据相关的内容,本章回中将继续介绍该内容.闲话休提,让我们一起TalkFlutter吧。知识回顾我们在前面章回中介绍了全局共享数据相关的内容,......
  • Mockito用法总结
    Mockito的是用来做什么的Mockito主要用于单元测试过程中模拟被调用方法的依赖<dependency><groupId>org.mockito</groupId><artifactId>mockito-core</artifactId><version>4.8.0</version><scope>test</scope></dependency......
  • js async/await 用法
    1.使用async/await可以更好地控制事件循环,像处理DOM事件或定时器等场合。eg1......
  • videoPlayer插件的用法
    文章目录1.概念介绍2.使用方法2.1实现步骤2.2具体细节3.示例代码4.内容总结我们在上一章回中介绍了"如何获取文件类型"相关的内容,本章回中将介绍如何播放视频.闲话休提,让我们一起TalkFlutter吧。1.概念介绍播放视频是我们常用的功能,不过Flutter官方SDK......
  • ‍️ SpringBoot中MongoDB的骚操作用法
    不知道大家在工作项目中有没有使用MongoDB,在哪些场景中使用。MongoDB作为NoSQL数据库,不像SQL数据库那样,可以使用Mybatis框架。如果需要在SpringBoot中使用MongoDB的话,我目前知道有三种方式,第一种是直接使用MongoDB官方的SDK,第二种是使用SpringJpa的方式,第三种是使用MongoTemplate......