【问题标题】:BigQuery: two hitlevel custom dimensionsBigQuery:两个命中级自定义维度
【发布时间】:2016-04-16 15:30:31
【问题描述】:

我似乎无法获得一个查询,该查询为我提供了同一命中中 customdimensionX 的值为 X 且 customdimensionY 的值为 Y 的所有会话。我目前的查询结果没有找到结果。

谁能帮我解决这个问题:)? 谢谢!

SELECT  sum(totals.visits)

from TABLE_DATE_RANGE([xxxx.ga_sessions_], TIMESTAMP('2016-3-1'),TIMESTAMP('2016-3-1'))

WHERE 
  (hits.customDimensions.index=x AND hits.customDimensions.value='x') 
  AND (hits.customDimensions.index=y AND hits.customDimensions.value='y')

【问题讨论】:

    标签: google-analytics google-bigquery


    【解决方案1】:

    回答我自己的问题有点奇怪,但它可能对其他人有用:) 我通过以下方式找到了正确的号码:

    SELECT EXACT_COUNT_DISTINCT(uniqueVisitId) as sessions
    FROM( 
     SELECT
       CONCAT(fullvisitorid,"_",string(visitId)) AS uniqueVisitId,
       MAX(IF(hits.customDimensions.index=x,hits.customDimensions.value,NULL)) WITHIN hits AS x,
       MAX(IF(hits.customDimensions.index=y,hits.customDimensions.value,NULL)) WITHIN hits AS y,
       hits.hitNumber
    
       FROM TABLE_DATE_RANGE([xxxxxx.ga_sessions_], TIMESTAMP('2016-3-1'),TIMESTAMP('2016-3-1'))
    
       having
        (x contains 'x' and y contains 'y')
    )
    

    【讨论】:

      【解决方案2】:

      尝试以下选项(没有机会测试,但应该接近您的需要,如果不完全一样):

      SELECT SUM(totals.visits) 
      FROM TABLE_DATE_RANGE([66080915.ga_sessions_], TIMESTAMP('2016-3-1'),TIMESTAMP('2016-3-1'))
      OMIT RECORD IF 
      SUM((hits.customDimensions.index=x AND hits.customDimensions.value='x')
       OR (hits.customDimensions.index=y AND hits.customDimensions.value='y')
      ) != 2 
      
      SELECT SUM(totals.visits) FROM (  
        SELECT totals.visits, 
        SUM((hits.customDimensions.index=x AND hits.customDimensions.value='x')
         OR (hits.customDimensions.index=y AND hits.customDimensions.value='y')
        ) WITHIN RECORD AS check,
        FROM TABLE_DATE_RANGE([66080915.ga_sessions_], TIMESTAMP('2016-3-1'),TIMESTAMP('2016-3-1'))
        HAVING check = 2  
      )
      

      添加

      如果 customDimensions 按特定匹配(如 hits.hit.customVariables)分组 - 您可以使用
      WITHIN hits.hitOMIT hits.hit IF
      识别同一匹配中的两个条件 分别与
      WITHIN RECORDOMIT RECORD IF

      但我检查了BigQuery Export schema,似乎不是这样。
      我看不到区分每个特定命中的尺寸的方法。 自定义维度按级别呈现 - 用户/会话级别、产品级别和点击级别。 每个产品只能识别/查询产品级自定义维度。

      希望对你有帮助

      【讨论】:

      • 感谢您的回答,但问题是 customdimension x 和 y 的条件都应在同一次命中中得到满足,我认为您的建议选择在会话中某处同时满足这两个条件的会话而不是专门在同一个命中?
      • :o) 我专注于修复你的 WHERE 子句,假设这是你的亮点。你的其余代码我没碰过
      • 好吧,无论如何谢谢@Mikhail Berlyant。我找到了另一种获得结果的方法(见下文),可能不是最干净的,如果有更好的方法,请告诉我。
      • 很高兴你得到它。我觉得我的回答帮助你达到了这一点——尤其是使用 WHITHIN(这正是我的重点)。如果是这样,您至少可以通过投票将其标记为有用。
      • 嗨 Mikhail,我有一个与使用自定义维度获取新用户数和用户数相关的问题。这是链接:stackoverflow.com/questions/48016315/…你有时间可以看看吗?谢谢
      猜你喜欢
      • 1970-01-01
      • 2018-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多