要将长表转换为宽表,你可以使用Athena Presto的PIVOT函数。以下是一个示例解决方案:
假设你有一个名为long_table
的长表,包含以下列:
id | category | value
---------------------
1 | A | 10
1 | B | 20
2 | A | 30
2 | B | 40
你希望将其转换为宽表,其中id
是唯一标识符,category
的值将成为宽表的列,value
的值将填充到相应的列中。转换后的宽表如下所示:
id | A | B
-----------
1 | 10 | 20
2 | 30 | 40
下面是如何使用Athena Presto的PIVOT函数实现这个转换的示例代码:
SELECT
id,
MAX(CASE WHEN category = 'A' THEN value ELSE NULL END) AS A,
MAX(CASE WHEN category = 'B' THEN value ELSE NULL END) AS B
FROM
long_table
GROUP BY
id;
在上面的示例中,使用了MAX函数和CASE语句来将category
的不同值转换为宽表的列,并使用GROUP BY子句按id
分组。