如何识别安装和删除应用程序的用户 - 如何在新架构中使用 UNNEST

Posted

技术标签:

【中文标题】如何识别安装和删除应用程序的用户 - 如何在新架构中使用 UNNEST【英文标题】:How to identify users who install and remove an app - how to use UNNEST in the new schema 【发布时间】:2019-04-11 12:45:33 【问题描述】:

我想确定安装和删除应用的用户。之前已在其他地方回答过此问题:SQL Query to find users that install and uninstall an App on the same day

但是,这使用了旧架构,我不确定如何使用新架构来重做它。带有 event_dim 的 UNNEST 函数是最大的问题,因为在新架构中似乎没有明确的替代方案。

#standardSQL

SELECT event_date,user_pseudo_id,event_name


FROM

`appDataFromFirebase.events_*`



WHERE event_name = "app_remove" OR event_name = "first_open"

这给了我所有拥有 app_remove 或 first_open 的用户。我真正想要的是那些同时拥有这两者的用户,并包括这些事件发生的日期。 (编辑以使我的要求更清楚)。

【问题讨论】:

【参考方案1】:

您可以使用group by 获取用户:

SELECT user_pseudo_id,
       MIN(CASE WHEN event_name = 'first_open' THEN event_date END) as app_remove_date,
       MAX(CASE WHEN event_name = 'app_remove' THEN event_date END) as app_remove_date
FROM `appDataFromFirebase.events_*`
WHERE event_name IN ('app_remove', 'first_open')
GROUP BY user_pseudo_id
HAVING COUNT(DISTINCT event_name) = 2;

【讨论】:

太棒了。如何修改它以包含 event_date?即包括 first_open 和 app_remove 日期?例如user_pseudo_id first_openDate app_removeDate 作为列? @user3156990 。 . .我看到你确实在问题中提出了这个要求。我已经添加了逻辑。 我不是很清楚,我的错!感谢您的持续帮助。不幸的是,它抛出了一个错误:'预期关键字 ELSE 或关键字 END,但在 [2:63] 得到“)”'。有什么建议么?谢谢

以上是关于如何识别安装和删除应用程序的用户 - 如何在新架构中使用 UNNEST的主要内容,如果未能解决你的问题,请参考以下文章

如何在新的微服务中验证现有用户

如何识别和删除服务器上过期的 FCM 令牌?

如何在新的导航抽屉架构组件中实现共享应用或评分应用或注销功能

如何在Mac上识别和删除损坏的字体

如何在Mac上识别和删除损坏的字体

如何识别用户是不是打开了 App Store 的链接,但当时没有安装该应用程序,而是在以后安装了该应用程序?