Google bigquery 使用大查询将firebase事件参数键值数据显示到单行中
我正在尝试对Firebase存储的事件执行Google BigQuery。我已经执行了以下查询Google bigquery 使用大查询将firebase事件参数键值数据显示到单行中,google-bigquery,Google Bigquery,我正在尝试对Firebase存储的事件执行Google BigQuery。我已经执行了以下查询 SELECT * FROM `myTable` LIMIT 6 其结果如下: +-----+----------+--------+------------------+---------------------------------+ | Row | date | name | event_params.key | event_params.value.string_value |
SELECT * FROM `myTable` LIMIT 6
其结果如下:
+-----+----------+--------+------------------+---------------------------------+
| Row | date | name | event_params.key | event_params.value.string_value |
+-----+----------+--------+------------------+---------------------------------+
| 1 | 20200922 | Event1 | errorName | BLE_Not_connected |
| | | | appDetails | 2.2.2 |
| | | | errorDetails | iOS-Error |
+-----+----------+--------+------------------+---------------------------------+
因此,这里第1行有多个event_params.key
条目,它们的值显示在event_params.value.string_value
列中。现在,我想执行一个Google大查询,将事件参数.key
列值展平,并在下面显示结果
+-----+----------+--------+------------------+---------------------------------+
| Row | date | name | errorName | appDetails | errorDetails |
+-----+----------+--------+------------------+---------------------------------+
| 1 | 20200922 | Event1 | BLE_Not_connected| 2.2.2 | iOS-Error |
+-----+----------+--------+------------------+---------------------------------+
有人能帮我吗?提前感谢。下面是BigQuery标准SQL
EXECUTE IMMEDIATE (
SELECT """
SELECT date, name, """ ||
STRING_AGG("""MAX(IF(key = '""" || key || """', value.string_value, NULL)) AS """ || key, ', ')
|| """
FROM `project.dataset.table` t, t.event_params
GROUP BY date, name
"""
FROM (
SELECT DISTINCT key
FROM `project.dataset.table` t, t.event_params
)
);
如果要应用于问题中的样本数据,则输出为
Row date name errorName appDetails errorDetails
1 20200922 Event1 BLE_Not_connected 2.2.2 iOS-Error