athena中的sql-pivot表

nbewdwxp  于 2021-08-13  发布在  Java
关注(0)|答案(0)|浏览(238)

关于如何使用AthenaSQL透视数据,答案很少。它们的共同缺点是,必须事先知道输入数据中将成为数据透视版本中的列的所有值。
例如,假设输入数据如下所示:

User       Fact     Value
-------    ----     ------
102        1        a
101        1        b
102        2        c
103        3        d
...

预期的轴心是:

User       Fact_1   Fact_2   Fact_3
-------    ------   ------   ------
101        b        NULL     NULL
102        a        c        NULL
103        NULL     NULL     d
...

现在关键的挑战是 Fact 很高(比如说~1k)。如何在不手动指定数据透视表的所有唯一值的情况下构建数据透视表 Fact (即结果中的列)?
对于数量有限的列,如这里所建议的,我可以执行以下操作:

SELECT 
    User,
    MAX(CASE WHEN Fact = '1' THEN Value END) AS Fact_1, 
    MAX(CASE WHEN Fact = '2' THEN Value END) AS Fact_2
FROM my_yable
GROUP BY  User

创建具有唯一属性的表也很简单 Fact 价值观,但我不知道如何使用它。。。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题