2016-03-22 17 views
1

私は、訪問したホームページ(文字列)に対するユーザーIDとネストされたレコードと、1回のセッションでの各訪問のタイムスタンプを持つセッションテーブルを持っています。基本的には1:1行のMの関係は:BigQuery:count()で条件を指定する

     UserId|SessionEndTime|page1|timestamp1| 
              |page2|timestamp2| 
              |page1|timestamp3| 

何私が知りたいことは、私は最後の6ヶ月で私のページの6倍を訪問したすべてのuserIdを得ることができる方法であり、それらは名前で(ページを訪問している必要があります'%astring%'のように)少なくとも2回。

)これは私のアプローチですが、どのように私は(数にのような条件をもたらすことができる?:

SELECT UserId, COUNT(UserId) AS visitCounter FROM [oxidation.TestVisits] 
WHERE SessionEndTime >= TIMESTAMP_TO_MSEC(DATE_ADD(CURRENT_TIMESTAMP(),-6,"MONTH")) 
     AND LastUserId != 'none' 
GROUP BY 1 
HAVING visitCounter>=6 
ORDER BY 1 ASC 

答えて

3

あなたのクエリに

SELECT UserId, COUNT(UserId) AS visitCounter, 
    SUM(page LIKE '%astring%') AS pageCounter 
FROM [oxidation.TestVisits] 
WHERE SessionEndTime >= TIMESTAMP_TO_MSEC(DATE_ADD(CURRENT_TIMESTAMP(),-6,"MONTH")) 
     AND LastUserId != 'none' 
GROUP BY 1 
HAVING visitCounter>=6 
AND pageCounter >= 2 
ORDER BY 1 ASC 
SUM(page LIKE '%astring%') AS pageCounterを追加
関連する問題