【问题标题】:Convert BigQuery data from key-value to columns将 BigQuery 数据从键值转换为列
【发布时间】:2016-08-04 04:37:33
【问题描述】:

给定 BigQuery 中的一些数据,格式如下:

| id | r.key | r.value |
+----+-------+---------+
|  1 |    k1 |     v11 |
|    +-------+---------+
|    |    k2 |     v12 |
|    +-------+---------+
|    |    k3 |     v13 |
+----+-------+---------+
|  2 |    k1 |     v21 |
|    +-------+---------+
|    |    k2 |     v22 |
|    +-------+---------+
|    |    k3 |     v23 |

如何将这些数据转换为:

| id |  k1 |  k2 |  k3 |
+----+-----+-----+-----+
|  1 | v11 | v12 | v13 |
+----+-----+-----+-----+
|  2 | v21 | v22 | v23 |

?

【问题讨论】:

  • 您的原始数据是 6 行还是其他格式?
  • N行,每行有一条重复记录r。每行出现 3 次该记录,一次为 key = k1,一次为 k2,一次为 k3

标签: sql google-bigquery


【解决方案1】:

下面试试

SELECT
  id, 
  MAX(IF(r.key = 'k1', r.value, NULL)) AS k1,
  MAX(IF(r.key = 'k2', r.value, NULL)) AS k2,
  MAX(IF(r.key = 'k3', r.value, NULL)) AS k3      
FROM YourTable
GROUP BY id

【讨论】:

  • 这是用于旧版 SQL 的
猜你喜欢
  • 1970-01-01
  • 2016-03-08
  • 2021-03-10
  • 1970-01-01
  • 2019-05-19
  • 2020-01-24
  • 2021-06-07
  • 2021-08-24
  • 1970-01-01
相关资源
最近更新 更多