有没有办法在雪花中旋转列到行?

Posted

技术标签:

【中文标题】有没有办法在雪花中旋转列到行?【英文标题】:Is there a way to rotate column's to row in snowflake? 【发布时间】:2021-03-31 21:44:39 【问题描述】:

我有一个像下面这样的单行表,它来自像下面这样的雪花查询

show warehouses like 'COMMON_WH';
select "name","state","type","size" FROM TABLE(RESULT_SCAN(LAST_QUERY_ID()))

name|state|type|size
COMMON_WH|SUSPENDED|STANDARD|Small

我想像下面这样旋转它。

name| COMMON_WH
state|SUSPENDED
type|STANDARD
size|Small

谢谢,

【问题讨论】:

【参考方案1】:

您可以使用unpivot 来完成此操作。这是一个如何使用它的示例。请注意,这有点冗长,因为您需要在取消透视之前将所有原始表的数据类型转换为相同的数据类型(在本例中为varchar)。

show warehouses like 'COMMON_WH';

select *
from (
    select
        "name"::varchar  as name,
        "state"::varchar as state,
        "type"::varchar  as type,
        "size"::varchar  as size
    FROM TABLE (RESULT_SCAN(LAST_QUERY_ID()))
) unpivot (col_val for col_name in (name, state, type, size))

这会产生:

COL_NAME COL_VAL
NAME COMMON_WH
STATE STARTED
TYPE STANDARD
SIZE X-Small

【讨论】:

嗨西蒙,我已经更新了这个问题,以更准确地说明我到底想在雪花中做什么。您回答的答案可能不起作用,因为我在这里依赖 TABLE(RESULT_SCAN(LAST_QUERY_ID(). 答案已根据您的新要求再次更新

以上是关于有没有办法在雪花中旋转列到行?的主要内容,如果未能解决你的问题,请参考以下文章

canvas离屏旋转效果实践——旋转的雪花

canvas离屏旋转效果实践——旋转的雪花

在oracle SQL中将行移动到列和列到行

oracle中的列到行

iOS 布局列到行

多列,多表列到行 unpivot