2016-05-12 61 views
0

我正在尝试计算这两个页面的独特综合浏览量。在bigquery中计算独特的综合浏览量

  • 帐户与注册等 - > mysite.com/form?account=true &订阅
  • 帐户只 - > mysite.com/form?account=true

我有这样的查询与case函数,但是当我运行下面的查询分别为每个页面参数我得到不同的结果比运行它结合。但综合结果不准确。有人能告诉我我在这里做错了吗?当您尝试计算它们只有一个被认为是

 SELECT 
    COUNT(DISTINCT (CASE WHEN hits.type = "PAGE" THEN CONCAT(fullvisitorid, 
    STRING(visitid), hits.page.pagepath) END)) AS UniquePageViews, 
    CASE WHEN (REGEXP_MATCH (hits.page.pagePath, '(.*account=true)')) THEN "Accounts" 
    WHEN (REGEXP_MATCH (hits.page.pagePath, '(.*subscribed)')) THEN "Signups" ELSE "Others" END AS Goals 
    FROM 
    [mydata.ga_sessions_20150506] 
    GROUP BY 
    Goals 

回答

0

问题可能是其中两个字符串"account=true""subscribed"存在于同一个pagePath的情况下,就这样。解决它的

的一种方法是通过改变匹配条件,如:

SELECT 
    EXACT_COUNT_DISTINCT(CASE WHEN hits.type = "PAGE" THEN CONCAT(fullvisitorid, 
STRING(visitid), hits.page.pagepath) END) AS UniquePageViews, 
    CASE WHEN (REGEXP_MATCH (hits.page.pagePath, '(account=true)') AND NOT REGEXP_MATCH (hits.page.pagePath, '(subscribed)')) THEN "Accounts" 
     WHEN (REGEXP_MATCH (hits.page.pagePath, '(subscribed)') AND NOT REGEXP_MATCH (hits.page.pagePath, '(account=true)')) THEN "Signups" 
     WHEN (REGEXP_MATCH (hits.page.pagePath, '(subscribed)') AND REGEXP_MATCH (hits.page.pagePath, '(account=true)')) THEN "Both" 
     ELSE "Others" END AS Goals 
FROM 
[mydata.ga_sessions_20150506] 
GROUP BY 
Goals 

如果我强迫的条件仅匹配"account=true"而不是"subscribed"

作为一个例子,这是我对我们的ga_sessions数据集进行测试:

SELECT 
exact_count_distinct(CASE WHEN hits.type = "PAGE" THEN CONCAT(fullvisitorid, STRING(visitid), hits.page.pagepath) END) AS UniquePageViews, 
CASE WHEN (REGEXP_MATCH (hits.page.pagePath, '(colcci)') AND NOT REGEXP_MATCH (hits.page.pagePath, '(lacoste)')) THEN "colcci" 
    WHEN (REGEXP_MATCH (hits.page.pagePath, '(lacoste)') AND NOT REGEXP_MATCH (hits.page.pagePath, '(colcci)')) THEN "lacoste" 
    WHEN (REGEXP_MATCH (hits.page.pagePath, '(lacoste)') AND REGEXP_MATCH (hits.page.pagePath, '(colcci)')) THEN 'both' 
    ELSE "Others" END AS Goals 
FROM [40663402.ga_sessions_20150506] 
GROUP BY 
Goals 

希望这有助于。任何问题都会让我们知道,

+0

我得到的结果与以前相同。也许是独特的网页浏览量的问题? 我测试了以下查询uniquepageview,我得到了准确的数字。但我不确定如何在我的示例中包含此查询。 SELECT COUNT(1)作为unique_pageviews FROM(SELECT hits.page.pagePath, hits.page.pageTitle, fullVisitorId, visitNumber, COUNT(1)击中 FROM [MY_TABLE] WHERE hits.type = '页面' GROUP BY hits.page.pagePath, hits.page.pageTitle, fullVisitorId, visitNumber ) – sam123

+0

不知道什么是错的呢。也许如果你尝试添加: '其中hits.page.pagepath包含(“account = true&subscribed”或(“account = true”,而不是“subscription”)可能会解决但不确定为什么第一个查询不起作用。 –

+0

快速的问题,你可以分享结果与我们的查询我建议你和你说的是正确的? –

相关问题