Google bigquery 使用BigQuery和DataStudio计算和显示客户生命周期价值直方图

Google bigquery 使用BigQuery和DataStudio计算和显示客户生命周期价值直方图,google-bigquery,google-data-studio,Google Bigquery,Google Data Studio,考虑GoogleBigQuery中包含客户购买记录的表。为了简单起见,让我们关注以下属性: 客户id、产品id、金额 我想从上面的数据集创建一个Google Data Studio报告,显示客户终身价值直方图。客户生命周期值是任何给定客户的金额之和。柱状图将根据客户的总金额显示有多少客户落入某个桶中-我将定义0-10、10-20、20-30等桶值范围 像这样: 最后,我还想按产品id过滤直方图。当过滤器处于活动状态时,直方图将显示至少购买过一次给定产品的客户的总数 到目前为止,我认为这不可能在D

考虑GoogleBigQuery中包含客户购买记录的表。为了简单起见,让我们关注以下属性:
客户id、产品id、金额

我想从上面的数据集创建一个Google Data Studio报告,显示客户终身价值直方图。客户生命周期值是任何给定客户的
金额
之和。柱状图将根据客户的总金额显示有多少客户落入某个桶中-我将定义0-10、10-20、20-30等桶值范围

像这样:

最后,我还想按产品id过滤直方图。当过滤器处于活动状态时,直方图将显示至少购买过一次给定产品的客户的总数

到目前为止,我认为这不可能在Datastudio中实现,但我希望我错了

到目前为止我尝试过的事情:

  • 通过Datastudio中的计算字段显示整个数据集的平均客户生命周期值很容易,如
    SUM(amount)/COUNT(customer\u id)

  • 对于创建直方图,我看不到任何纯粹在DataStudio中的方法(基于上述数据集)。我想我需要创建一个原始表的视图,为每个客户创建一行,包含总金额。bucket分配可以在Big Query中实现,也可以在datastudio中通过
    CASE。。。当

  • 然而,对于最后一步,即创建一个产品过滤器,过滤购买给定产品的客户的直方图,我不知道如何处理这个问题


    有什么想法吗?

    我可以复制您描述的内容,但这并不简单,所以我将尝试详细介绍所有内容。其主要思想是从同一个表中有两个数据源:一个包含
    customer\u id
    product\u id
    ,以便我们可以对其进行筛选,而另一个包含
    customer\u id
    和已计算的
    amount\u bucket
    字段。通过这种方式,我们可以在
    customer\u id
    上加入它(混合数据),并根据
    product\u id
    进行过滤,这不会改变
    amount\u bucket
    的计算

    我使用以下脚本在BigQuery中创建了一些数据:

    创建或替换表数据\u studio.histogram
    (
    客户id字符串,
    产品标识字符串,
    金额INT64
    );
    插入data_studio.histogram(客户id、产品id、金额)
    价值观(“约翰”,“游戏”,60),
    (“约翰”,“电视”,800),
    (“约翰”,“控制台”,300),
    (“保罗”,“沙发”,1200),
    (“乔治”,“电视”,750),
    (《林戈》、《电影》,20),
    ('Ringo','Console',250)
    ;
    
    然后我直接连接到BigQuery表并获得以下字段。数据源称为直方图:

    我们使用自定义查询添加第二个数据源(
    BigQuery
    ):

    选择
    客户识别码,
    案例
    当总和(金额)小于500时,则为“0-500”
    当总和(金额)小于1000时,则为“500-1000”
    当总和(金额)小于1500时,则为“1000-1500”
    其他“1500+”
    结束
    作为桶的数量
    从…起
    data_studio.histogram
    分组
    客户识别码
    
    仅使用后者,我们就可以使用以下配置制作基本柱状图:

    维度是
    金额\u桶
    ,度量是
    记录计数
    。我制作了一个
    bucket\u-order
    自定义字段,按字典顺序将其排序为“1000-1500”在“500-1000”之前:

    案例
    当金额=0-500时,则为0
    当数量=500-1000时,则为1
    当数量=1000-1500时,则为2
    其他3
    结束
    
    现在,我们在顶部添加
    产品\u id
    过滤器,并添加一个具有以下配置的新图表:

    请注意,度量是
    customer\u id
    的CTD(Count Distinct),并且
    混合数据
    数据源实现为:

    例如,我按
    TV
    进行过滤,因此仅显示
    George
    John
    但其他产品仍被计入总额计算:


    我希望它对你有用。

    太棒了!为了重现上一个屏幕截图,我必须将表和右侧图表的数据源都设置为混合数据源,并在混合数据上定义过滤器。否则,过滤器不会应用于所有元素。但它最终还是奏效了,这正是我想要的。回答得很好,非常感谢。