Сводная таблица в AWS Athena с множеством категорий - PullRequest
0 голосов
/ 27 мая 2020

Есть несколько ответов о том, как сводить данные с помощью 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 (т.е. столбцы в результате)?

Для ограниченного количества столбцов, как предлагается здесь , я мог бы сделать что-то вроде:

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 значений, но я не знаю, как его использовать ...

...