使用 BigQuery Firebase 数据在用户执行 event_name = 'app_remove' 之前查询事件
Posted
技术标签:
【中文标题】使用 BigQuery Firebase 数据在用户执行 event_name = \'app_remove\' 之前查询事件【英文标题】:Query the event just before the user did event_name = 'app_remove' using BigQuery Firebase data使用 BigQuery Firebase 数据在用户执行 event_name = 'app_remove' 之前查询事件 【发布时间】:2020-11-30 17:51:24 【问题描述】:我在 BigQuery 中的 SQL 查询方面需要帮助。我想知道用户在卸载应用之前做了什么事件(event_name = 'app_remove')
我正在尝试在用户触发 event_name = 'app_remove' 之前获取 'event_timestamp'、'event_name'、'event_params.key'、'event_value.string_value'。
我的数据如下所示:(图片中不可见名为“user_pseudo_id”的列)
我使用下面的查询来获取与执行 event_name = 'app_remove' 的用户关联的 'user_pseudo_id'、'event_params.key'、'event_value.string_value'。
SELECT
TIMESTAMP_MICROS(event_timestamp),
user_pseudo_id,
event_name,
e.key,
e.value.string_value
FROM
`privatedata.events_20201129`, unnest(event_params) as e
WHERE
user_pseudo_id in
(
SELECT
user_pseudo_id
FROM
`privatedata.events_20201129`
WHERE
event_name = 'app_remove')
但是,我只想要在“app_remove”事件之前执行的那个事件(以及它的参数)。
对我的任何帮助将不胜感激。
感谢和问候, 山塔努耆那教
【问题讨论】:
您的示例数据没有“app_remove”事件。 嗨@GordonLinoff,实际上数据有十亿行,我试图获取 app_remove 的屏幕截图,但手动查找非常困难,因为事件发生的次数非常少。 【参考方案1】:嗯。 . .我正在考虑使用数组逻辑;
SELECT p.*, event_params[SAFE_OFFSET(n - 1)]
FROM (SELECT p.*,
(SELECT MIN(n)
FROM unnest(event_params) ep WITH OFFSET n
WHERE ep.event_name = 'app_remove'
) as app_remove_n
FROM `privatedata.events_20201129` p
) p
WHERE app_remove_n IS NOT NULL
【讨论】:
嗨@Gordon,感谢您的快速回复。我使用查询并得到一个错误 - “无法识别的名称:p at [2:14]”。我无法修复错误。如果您能提供帮助,那就太好了。 嗨@Gordon,非常感谢您的编辑。抱歉再次写信,但现在我收到另一个错误:“字段名称 event_name 不存在于 STRUCT以上是关于使用 BigQuery Firebase 数据在用户执行 event_name = 'app_remove' 之前查询事件的主要内容,如果未能解决你的问题,请参考以下文章
如何将过去几天的数据从 Firebase 重新加载到 BigQuery?
Bigquery中的firebase / GA4数据是不是会追溯更改
如何将所有事件数据从 Firebase 导出到 BigQuery?