我试图将作为事件参数的字符串 ("item1,item2,item3") (key = "to_split", value.string_value = "item1,item2,item3") 拆分为 Google BigQuery 中的多个列。目前,我有:
SELECT
event_name,
PARSE_DATE("%Y%m%d", event_date) as date,
TIMESTAMP_MICROS(event_timestamp) as timestamp,
(
SELECT split(params.value.string_value, ',')
FROM UNNEST(event_params) as params
WHERE key = 'event_param-key_to_filter'
),
FROM `firebase.analytics.table`
这将给出如下结果:
事件名称 | 日期 | 时间戳 | f0_ |
---|---|---|---|
示例事件 | 2021-06-15 | 2021-06-15 10:08:41.634055 UTC | 项目\n项目\n项目\n项目 |
(格式化不喜欢它,但拆分将项目变成了数组)
我试图得到这样的结果:
事件名称 | 日期 | 时间戳 | 项目 0 | 项目 1 | 项目 2 | 物品... |
---|---|---|---|---|---|---|
示例事件 | 2021-06-15 | 2021-06-15 10:08:41.634055 UTC | 物品 | 物品 | 物品 | 等等... |
有没有一种好方法可以将此项目数组拆分为 SQL for BigQuery 中同一行的列?我已经被困在这个问题上很长一段时间了。
最好的事物
您可以使用数组引用:
SELECT t.*,
items[SAFE_ORDINAL(1)] as item_1,
items[SAFE_ORDINAL(2)] as item_2,
items[SAFE_ORDINAL(3)] as item_3,
items[SAFE_ORDINAL(4)] as item_4
FROM (SELECT event_name, PARSE_DATE("%Y%m%d", event_date) as date,
TIMESTAMP_MICROS(event_timestamp) as timestamp,
(SELECT split(params.value.string_value, ',')
FROM UNNEST(event_params) as params
WHERE key = 'event_param-key_to_filter'
) items
FROM `firebase.analytics.table` t
) t
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句