最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
如何在Hive中将列转行
时间:2026-06-10 09:07:01 编辑:袖梨 来源:一聚教程网
在Hive中,可以使用UNNEST函数将行转换为列

假设我们有一个名为sales_data的表,其结构如下:
CREATE TABLE sales_data (product_id INT,sale_date STRING,quantity INT);现在,我们希望将这个表转换为一个宽格式,其中每个产品ID和日期组合都有一行,相应的数量值放在单独的列中。可以使用以下查询实现这一目标:
SELECTproduct_id,COLLECT_LIST(sale_date) AS sale_dates,COLLECT_LIST(quantity) AS quantitiesFROMsales_dataGROUP BYproduct_id;这将返回一个结果集,其中每个product_id都有对应的sale_dates和quantities列表。
如果你希望将结果集转换回标准的宽格式(即每个日期和数量都有一行),可以使用UNNEST函数。首先,需要创建一个辅助表,用于存储sale_dates和quantities的数组:
CREATE TABLE sales_data_unneasted ASSELECTproduct_id,sale_date,quantityFROMsales_data;接下来,使用UNNEST函数将数组转换为行:
WITH product_sales AS (SELECTproduct_id,sale_date,quantityFROMsales_data_unneasted),unnested_sales AS (SELECTproduct_id,UNNEST(sale_dates) AS sale_date,UNNEST(quantities) AS quantityFROMproduct_sales)SELECTproduct_id,sale_date,quantityFROMunnested_sales;这将返回一个宽格式的结果集,其中每个产品ID、日期和数量组合都有一行。
相关文章
- 飞书提醒无法设定如何解决 06-10
- 华为p50 pocket优缺点介绍 06-10
- 2026年耐玩军棋游戏APP推荐:热门军棋手游排行榜 06-10
- 拼图软件下载免费版推荐:2026热门拼图软件免费下载合集 06-10
- 公交车查询实时路线APP推荐:实时查看公交到站与行驶轨迹的实用工具 06-10
- Sora开发者版权风险说明:如何通过3步排查规避风险? 06-10