sql - 使用 BigQuery Firebase 数据在用户执行 event_name = 'app_remove' 之前查询事件
问题描述
我需要 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”事件之前执行的那个事件(以及它的参数)。
对我的任何帮助将不胜感激。
谢谢和问候, Shantanu Jain
解决方案
嗯。. . 我正在考虑使用数组逻辑;
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
推荐阅读
- r - 如何使用 R 从 PDF 中抓取数据?
- javascript - 如何将 v-form 中的数据存储到 data 道具中?
- html - CSS 不适用于 GitHubPage
- python - 根据评估顺序显式括号 Python 表达式
- python - 如何在我的 Django/Django REST 项目中对这些自定义权限进行单元测试?
- java - Java面向对象;创建对象数组
- c# - ASP.NET Core 3.1 在控制器路由中使用 api 导致 HTTP 错误 500.19
- python - 如何从 TreeExplainer 获取 shap_values 的特征名称?
- excel - Power BI dax 函数从同一列中的前一个单元格添加数字
- c++ - 如何将模板函数传递给同一 .cpp 文件中的线程?