Convert BigQuery data from key-value to columns

旧城冷巷雨未停 提交于 2021-02-11 12:09:51

问题


Given some data in BigQuery in the following format:

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

how can I convert this data to something like:

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

?


回答1:


Try below

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


来源:https://stackoverflow.com/questions/38752449/convert-bigquery-data-from-key-value-to-columns

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!