Google bigquery 使用BigQuery查找报告方法时的逻辑混乱

Google bigquery 使用BigQuery查找报告方法时的逻辑混乱,google-bigquery,data-analysis,Google Bigquery,Data Analysis,我对一项高度优先的任务失去了理智。任务是找到一种方法,在车辆共享应用程序中报告客户活动随时间的变化。我们有一个用BigQuery编写的视图,其中说明客户是否在30天或90天内积极使用该服务,以及他是否是一个经常使用该服务的用户。每月使用服务超过某一特定阈值的客户被称为高用户、超用户,分别按阈值划分。我们将用户分为30/90天活跃用户、非活跃用户、高/超活跃用户。但这一类别随着时间而变化。例如: -过去30天的活动用户可以成为非活动用户。 -从未使用过该服务的非活跃用户可能会突然成为本月的高/超用

我对一项高度优先的任务失去了理智。任务是找到一种方法,在车辆共享应用程序中报告客户活动随时间的变化。我们有一个用BigQuery编写的视图,其中说明客户是否在30天或90天内积极使用该服务,以及他是否是一个经常使用该服务的用户。每月使用服务超过某一特定阈值的客户被称为高用户、超用户,分别按阈值划分。我们将用户分为30/90天活跃用户、非活跃用户、高/超活跃用户。但这一类别随着时间而变化。例如: -过去30天的活动用户可以成为非活动用户。 -从未使用过该服务的非活跃用户可能会突然成为本月的高/超用户,从下个月起可能根本不使用该服务

我们有客户使用的所有服务的数据

我真的很困惑,一直在寻找最佳策略来发现客户类型产生了多少价值和数量。我想在历史背景下报告这一点

任何想法都将受到高度赞赏。这对我现在来说非常重要,我真的被卡住了

这是我现在拥有的BigQuery视图的一部分

以下是列名的含义:

id:客户的id 非活动客户:从未使用过服务但已注册应用的客户

非活动客户:过去14天内未活动的客户 非活动客户:过去30天内未活动的客户

活动客户:如果客户在过去90天内使用了服务,则为1;否则为0

活动客户\u 30 \u int:如果客户在过去30天内使用了服务,则为1;否则为0

重度客户:如果客户在过去90天内使用的服务超过特定阈值,则为1,否则为0

重度客户\u 30 \u int:如果客户在过去30天内使用的服务超过特定阈值,则为1,否则为0

ultra_customer_int:如果客户使用的服务超过了非常高的阈值,则为1,否则为0

ultra_customer_30_int:1如果客户在30天内使用的服务超过非常高的阈值,则0否则

但每个月这种观点的结果都会发生变化。因此,客户类型也会发生变化(我的意思是列中的值会发生变化)。要求是在历史背景下报告这一点,以便我们了解客户如何随时间从一种类型转变为另一种类型

我不确定从视图中获取逻辑并每月运行查询并将数据保存到仓库中,并将日期映射到数据仓库是否是一个好主意?我认为通过这种方式,我可以知道特定月份用户的customertype,并通过这种方式跟踪客户类型的变化


请帮忙。谢谢。

如果您想报告某个时间点的客户群,那么构建存储这些信息的表可能会有所帮助,因为正如您所说的,如果您使用实时视图,只需显示“现在”即可

例如,如果您希望每月跟踪此更改,然后每月构建一个表*显示客户ID和每个ID所在的细分市场,然后您可以对照主数据库表交叉引用这些客户ID,并在组级别汇总统计数据

我在历史数据方面也遇到了同样的挑战,为了填充历史数据,我编写了一个python脚本,该脚本使用滚动窗口运行客户细分,以自动化时间回顾过程——假设您有数据,您也可以这样做。您可能还想在BigQueryUI中进行探索(在编写本文时是Beta版)


*这与power是您的视图的查询相同,但您可以将其保存在一个表中(可能带有数据戳),以显示它所对应的时间点。

如果您想报告客户群在某个时间点的情况,那么构建存储此信息的表可能会有所帮助,因为正如您所说的那样,如果你使用的是实时视图,那么只能显示“现在”

例如,如果您希望每月跟踪此更改,然后每月构建一个表*显示客户ID和每个ID所在的细分市场,然后您可以对照主数据库表交叉引用这些客户ID,并在组级别汇总统计数据

我在历史数据方面也遇到了同样的挑战,为了填充历史数据,我编写了一个python脚本,该脚本使用滚动窗口运行客户细分,以自动化时间回顾过程——假设您有数据,您也可以这样做。您可能还想在BigQueryUI中进行探索(在编写本文时是Beta版)


。*这将是与power的视图相同的查询,但您会保存在一个表中,可能带有数据戳,以显示它对应的时间点。

我也做了类似的事情,我必须构建一个组时间点表,以便能够说“这是组x在日期y上的性能”,因此对于每一天(追溯到您想要报告的历史时期)您将存储一个客户ID和他们当前的组状态。@BenP感谢您的精彩回复。这给了我一些前进的方向。现在我们有一个视图,它在查询结果的不同列中给出了用户对特定类别给出真/假值的当前状态。但是下个月可能会有所不同。您能不能查看有关实现逻辑的更多详细信息?当然可以,您可以用一些特定的问题更新您的原始问题,我将提供更详细的回答并尝试回答。@BenP我已经更新了问题,请现在检查我已经做了类似的事情,我必须建立一个小组时间点表,以便能够说“这是x组在y日的表现”,因此每天(追溯到您希望报告的历史日期),您都要存储一个客户ID和他们当前的组状态。@BenP谢谢您