2016-10-12 4 views
2

Googleアナリティクスデータから特定のページの時間を抽出するBIgQuery SQLクエリをお手伝いしてもらえますか?Googleアナリティクスデータからページに時間を集めるためのBigQuery SQLクエリが必要

特定のページを訪問したすべての訪問者IDについて、そのページのページ上の時刻を希望します。これは、平均ではなくページ上の平均時間を計算できるようにするためです。

visitorId、hits.hitsNumber、およびhits.timeディメンションが必要であると仮定しています。また、何とかページが表示されたヒットのヒット数は、次のヒットのヒット時間から差し引かれる必要があります。

ご迷惑をおかけして申し訳ございません。このコードの鍵はPARTITION BYORDER BY修飾子に基づいて、パーティションの次の行から指定された値をつかむLEAD()関数である

SELECT 
    fullVisitorId, 
    hits.page.hostname, 
    hits.page.pagePath, 
    hits.hitNumber, 
    hits.time, 
    nextTime, 
    (nextTime - hits.time) as timeOnPage 
FROM(
    SELECT 
    fullVisitorId, 
    hits.page.hostname, 
    hits.page.pagePath, 
    hits.hitNumber, 
    hits.time, 
    LEAD(hits.time, 1) OVER (PARTITION BY fullVisitorId, visitNumber ORDER BY hits.time ASC) as nextTime 
    FROM [PROJECTID:DATASETID.ga_sessions_YYYYMMDD] 
    WHERE hits.type = "PAGE" 
) 

答えて

2

はこれを試してみてください。

希望に役立ちます!

+0

ありがとう、@ andre622。これは非常に役に立ちます。 1つの質問: 'code'をhits.type = 'PAGE'' code' のどこに追加して、すべてのヒットではなくページ間の時間を確実に計算するべきですか? –

+0

偉大な点:編集されたコード。 – andre622

関連する問題