使用 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> at [5:24] " 如果您能调查一下,我们将非常感激..

以上是关于使用 BigQuery Firebase 数据在用户执​​行 event_name = 'app_remove' 之前查询事件的主要内容,如果未能解决你的问题,请参考以下文章

将数据从 firebase 导出到 bigQuery?

如何将过去几天的数据从 Firebase 重新加载到 BigQuery?

Bigquery中的firebase / GA4数据是不是会追溯更改

如何将所有事件数据从 Firebase 导出到 BigQuery?

在链接到 BigQuery 之前,有啥方法可以访问 Firebase 原始事件数据?

如何从 firebase 云功能访问 bigquery 数据?