【发布时间】:2018-08-21 15:47:18
【问题描述】:
我有一张像这样的表
-------------------------------
| col1 | col2 | count | value |
-------------------------------
| id1 | val1 | 1 | 2 |
| id1 | val2 | 3 | 4 |
| id2 | val1 | 5 | 6 |
| id2 | val2 | 7 | 8 |
....
我希望最终的结果是这样的
---------------------------------------------------------------
| col1 | val1_count| val1_value| val2_count | val2_value | ...
---------------------------------------------------------------
| id1 | 1 | 2 | 3 | 4 |
| id2 | 5 | 6 | 7 | 8 |
....
它几乎是 Excel 中的数据透视表或 Python/R 中的熔体/铸造,但是否有一个优雅的 SQL 解决方案来实现它?幸运的是,col2 只有两个不同的值 - val1, val2 但如果有解决方案可以扩展到除两个之外的多个值,那将是加分项。
更新,我正在使用 Hive 和 Impala(我都可以使用)
【问题讨论】:
-
我删除了不兼容的 SQL 标签。有你声誉的人应该知道只标记你真正使用的数据库。
-
@GordonLinoff,谢谢。
-
@a_horse_with_no_name,我更新了帖子,我使用的是 Hive 和 Impala,而且桌子很大。
标签: sql hive pivot-table impala