[Google Data Studio]:无法创建直方图,因为 bin 维度被解释为度量

问题描述 投票:0回答:1

我喜欢制作保存在嵌套 BigQuery 表中的一些数据的直方图。以简化的方式,可以通过以下方式创建表:

CREATE TEMP TABLE Sessions (
    id int,
    hits 
      ARRAY<
        STRUCT<
          pagename STRING>>
);

INSERT INTO Sessions (id, hits)
VALUES 
  ( 1,[STRUCT('A'),STRUCT('A'),STRUCT('A')]),
  ( 2,[STRUCT('A')]),
  ( 3,[STRUCT('A'),STRUCT('A')]),
  ( 4,[STRUCT('A'),STRUCT('A')]),
  ( 5,[]),
  ( 6,[STRUCT('A')]),
  ( 7,[]),
  ( 8,[STRUCT('A')]),
  ( 9,[STRUCT('A')]),
  (10,[STRUCT('A'),STRUCT('A')]);

看起来像

id hits.pagename
1 A
A
A
2 A
3 A
A

其他 ID 依此类推。我的目标是获得一个直方图,显示数据工作室中每个 id 的 A 出现次数分布。 MWE 的报告可以在这里看到:link

到目前为止,我创建了一个名为 pageviews 的计算字段,它通过

SUM(IF(hits.pagename="A",1,0))
评估每个会话的所需次数。查看显示 id 和 pageviews 的表格,我得到了预期的结果:

table showing the number of occurences of page A for each id

但是,计算字段的输出是一个metric,这可能会给后面带来麻烦。在下一步中,我想按照这篇文章中介绍的程序进行操作。因此,我创建了另一个字段 bin 以根据主页浏览量将我的会话分配到垃圾箱:

CASE
    WHEN pageviews = 0 OR pageviews = 1 THEN "bin 1"
    WHEN pageviews = 2 OR pageviews = 3 THEN "bin 2"
END

According to this bin-defintion I hope to obtain a histogram having 6 counts in bin 1 and 4 counts in bin 2.好吧,在这个特定的例子中,它实际上在bin 1中有4个计数,因为ids 5和7有“null”条目,但没关系。这不会发生在我的真实世界表中。

正如您在下一张图片中看到的那样,显示与上面相同的表格,但现在有一个 bin 列,此分配也有效 - 每个 id 都分配了正确的 bin,但现在输出字段是文本类型的度量。因此,条形图不允许我使用它(它需要它作为维度)。

Assignment of each id to a bin

我在某处阅读了创建自连接混合的解决方法,它将度量作为维度输出。这仅适用于名称:我的字段现在是一个维度,我可以将其用于条形图,但条形图不会加载并显示数据源的配置错误,可以在这张图片中看到:

bar-chart of id-count over bin. In the configuration of the chart one can see that .

histogram google-data-studio
1个回答
0
投票

在 Looker Studio 中使用此自定义查询作为我的数据源:

SELECT *
FROM
(
  SELECT 1 AS id, ['A','A','A'] AS hits
  UNION ALL
  SELECT 2 AS id, ['A'] AS hits
  UNION ALL
  SELECT 3 AS id, ['A','A'] AS hits
  UNION ALL
  SELECT 4 AS id, ['A','A'] AS hits
  UNION ALL
  SELECT 5 AS id, [] AS hits
  UNION ALL
  SELECT 6 AS id, ['A'] AS hits
  UNION ALL
  SELECT 7 AS id, [] AS hits
  UNION ALL
  SELECT 8 AS id, ['A'] AS hits
  UNION ALL
  SELECT 9 AS id, ['A'] AS hits
  UNION ALL
  SELECT 10 AS id, ['A','A'] AS hits
)

从该数据源创建一个简单的数据混合,将 id 作为维度和页面浏览量度,使用与您使用的相同的公式。 (我认为在你发布这个问题的时候,像这样的简单混合是不可能的。我相信他们过去至少需要 2 个来源,这可能就是你提到自连接的原因)

Screenshot of the Data Blend(注意不需要加入)

pageviews
指标的公式:
SUM(IF(hits='A',1,0))

数据混合的输出如下所示:

| id | pageviews |
| -- | --------- |
| 1  | 3         |
| 2  | 1         |
| 3  | 2         |
| 4  | 2         |
| 5  | 0         |
| 6  | 1         |
| 7  | 0         |
| 8  | 1         |
| 9  | 1         |
| 10 | 2         |

现在,您可以使用此混合作为数据源将条形图添加到您的报告中。维度应该是具有以下公式(或它的某些变体)的计算字段:

CASE 
  WHEN pageviews <= 1 THEN 'Bin 1'
  WHEN pageviews <= 3 THEN 'Bin 2'
END

对于 Metric,选择

id
并使用 Count Distinct 聚合。

最终的条形图如下所示:

Bar Chart (with SETUP pane visible)

© www.soinside.com 2019 - 2024. All rights reserved.