You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将Presto表行转列为指定格式,是否应使用Pivot?

结论:不需要用Pivot,应该用Unpivot操作

你的需求是把宽表(多列)转换为窄表(两列,列名+对应值),这属于**逆透视(Unpivot)**场景,和Pivot(透视,行转列)的作用完全相反。

在Presto中,可以用UNNEST结合ARRAY和MAP来实现这个转换,示例SQL如下:

SELECT 
    column_name, 
    value
FROM 
    your_table
CROSS JOIN UNNEST(
    ARRAY['column_1', 'column_2', 'column_3'],
    ARRAY[column_1, column_2, column_3]
) AS t(column_name, value);

或者用MAP的方式更简洁:

SELECT 
    entry.key AS column_name, 
    entry.value AS value
FROM 
    your_table,
    UNNEST(MAP(
        ARRAY['column_1', 'column_2', 'column_3'],
        ARRAY[column_1, column_2, column_3]
    )) AS entry;

这两种写法都能将你原表的三列转换为期望的两行列结构。

内容的提问来源于stack exchange,提问作者Smithy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 23:43:18