如何使用Tableau计算字段删除GA页面查询参数?

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

我在我的URIs页面维度中请求GA,如下所示:

  1. /this/is/啊/webpage.HTML/?parameter=1
  2. /forwarded/from/?URL=/webpage.HTML?parameter=1
  3. /this/is/another/webpage.HTML/

我想在Tableau中创建一个计算字段,在第一个“?”之前提取文本。并返回该值。

基于上述输入的理想输出将是:

  1. /this/is/啊/webpage.HTML/
  2. /转发/从/
  3. /this/is/another/webpage.HTML/

我试过这个

计算字段:公式:REGEXP_REPLACE(Page, '\\?.+', '')

它不返回任何记录。

请告知解决方案或解释为什么Tableau不按预期处理此问题?

google-analytics tableau calculated-field tableau-online tableau-public
1个回答
0
投票

不要将字符替换到问号的右侧,而是尝试将其提取到左侧:

REGEXP_EXTRACT([Page], '([^?]*)')

奇怪的是,如果没有括号,上面计算的字段将不起作用。你最初的尝试也许也是如此。

编辑:因为你的原始功能似乎对我有用,我很好奇你是否正在尝试使用目前不支持Tableau正则表达式的数据源。

Here是支持正则表达式函数的数据源列表:

此功能适用于文本文件,Google BigQuery,PostgreSQL,Tableau数据提取,Microsoft Excel,Salesforce,Vertica,Pivotal Greenplum,Teradata(版本14.1及更高版本),Impala 2.3.0(通过Cloudera Hadoop数据源),Snowflake和Oracle数据源。

在不使用Regex的情况下在Tableau中本地执行此操作的方法如下:

IF CONTAINS([Page],'?') THEN     
    LEFT([Page], FIND([Page],'?')-1)
ELSE
    [Page]
END

但要小心,因为Contains()函数的计算成本相对较高 - 因为它需要搜索每个字符串的每个字符。

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