如何使用 CASE 语句在 Google Data Studio 中减去网页浏览量?

How to Subtract Pageviews in Google Data Studio using a CASE statement?

我想从不同页面的 Pageviews 中减去特定页面的 Pageviews,但是当我尝试将 COUNTCASE 一起使用时,我得到 1:

COUNT(CASE
    WHEN page = "www.link1.com" THEN 1 END)

这给了我一个错误COUNT:

COUNT(CASE
    WHEN page = "www.link1.com" THEN 1
    ELSE 0 END)

我最终想做的是:

COUNT(CASE
    WHEN page="www.link1.com" OR page = "www.link2.com" THEN 1
    ELSE 0 END) - COUNT(CASE
    WHEN page="www.link3.com" THEN 1
    ELSE 0 END)

我想要 UsersCOUNT 访问过 link3NOT 来自 link1link2.这些链接是漏斗中的步骤。 link1 是漏斗的第一步,但 link2link3 有更多 Pageviews。我想显示有多少用户来自上一个渠道步骤以外的来源(即 link1)。

总结

实现它的一种方法是使用 RegEx 公式 (#2),或者 CASE Statement (#3), however, as Pageviews is an aggregated Metric, the Calculated Fields 在数据源创建时将产生以下消息:

Sorry, calculated fields can't mix metrics (aggregated values) and dimensions (non-aggregated values). Please check the aggregation types of the fields used in this formula. Learn more.

为了将来参考,添加了一张图片:

解决方案是首先使用数据混合来分解 Pageviews 字段 (#1),然后应用计算字段(#2 或 #3):

1) Data Blending

数据源 1

  • 连接键 1: Date
  • 连接键 2: Page
  • 公制Pageviews

数据源 2

  • 连接键 1: Date
  • 连接键 2: Page

要详细说明的图像:

2) 正则表达式

SUM(NARY_MAX(CAST(REGEXP_REPLACE(CONCAT(Page, ";", Pageviews), "(www\.link1\.com|www\.link2\.com);(.*)", "\2") AS NUMBER ), 0 ) ) - SUM(NARY_MAX(CAST(REGEXP_REPLACE(CONCAT(Page, ";", Pageviews), "(www\.link3\.com);(.*)", "\2") AS NUMBER ), 0 ) )

3)(替代计算字段)CASE 语句

SUM(CASE
    WHEN Page IN ("www.link1.com", "www.link2.com") THEN Pageviews
    ELSE 0 END) - SUM(CASE
    WHEN Page IN ("www.link3.com") THEN Pageviews
    ELSE 0 END)

Google Data Studio Report 和一个 GIF 来详细说明: