2016-05-12 60 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

快速的問題,你可以分享結果與我們的查詢我建議你和你說的是正確的? –

相關問題