AWS Athena中的数据透视表具有许多类别

时间:2020-05-27 14:21:45

标签: sql presto amazon-athena

关于如何使用Athena-SQL旋转数据的答案很少。它们的共同缺点是,必须预先知道输入数据中列的所有值是什么,这些值将成为透视表中的列。

例如,假设输入数据如下:

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的所有唯一值(即结果中的列)的情况下构建数据透视表?

对于有限的列,如建议的here,我可以做类似的事情:

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值创建表也很简单,但是我不知道如何使用它...

0 个答案:

没有答案