在标准SQL中进行转置-BigQuery

Mil*_*ton 2 google-bigquery google-cloud-platform

我想知道如何使用BigQuery的标准SQL将行转换为列。

我已经阅读了一些有关此的文章,但是其中大多数使用BigQuery的遗留函数“ GROUP_CONCAT_UNQUOTED”,该函数在标准SQL版本中不存在。

这是我的数据结构:

在此处输入图片说明

这是我要实现的目标:

在此处输入图片说明

谢谢你的帮助。

Tim*_*sen 6

如果键的数目是已知的并且是固定的,则可以使用简单的数据透视查询:

SELECT
    id,
    MAX(CASE WHEN key = 'technician' THEN value END) AS technician,
    MAX(CASE WHEN key = 'supervisor' THEN value END) AS supervisor,
    MAX(CASE WHEN key = 'location'   THEN value END) AS location
FROM yourTable
GROUP BY id;
Run Code Online (Sandbox Code Playgroud)