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