このクエリでは、何が必要ありませんが、Standard SQLバージョンで:
#standardSQL
SELECT
SUM((SELECT COUNTIF(eventInfo.eventAction = 'landing_page') FROM UNNEST(hits))) Landing_Page,
SUM((SELECT COUNTIF(eventInfo.eventAction = 'model_selection_page') FROM UNNEST(hits) WHERE EXISTS(SELECT 1 FROM UNNEST(hits) WHERE eventInfo.eventAction = 'landing_page'))) Model_Selection
FROM `64269470.ga_sessions_20170720`
ちょうどその。 4つのライン、方法高速かつ安価。
あなたはまた、シミュレートされたデータを再生することができます
、何かのように:あなたは少なくとも一度解雇していた訪問者を選択する必要があるとして、GAにこのタイプのレポートを構築することは、もう少し難しいかもしれないことを
#standardSQL
WITH data AS(
SELECT '1' AS fullvisitorid, ARRAY<STRUCT<eventInfo STRUCT<eventAction STRING > >> [STRUCT(STRUCT('landing_page' AS eventAction) AS eventInfo)] AS hits UNION ALL
SELECT '1' AS fullvisitorid, ARRAY<STRUCT<eventInfo STRUCT<eventAction STRING > >> [STRUCT(STRUCT('landing_page' AS eventAction) AS eventInfo), STRUCT(STRUCT('landing_page' AS eventAction) AS eventInfo)] AS hits UNION ALL
SELECT '1' AS fullvisitorid, ARRAY<STRUCT<eventInfo STRUCT<eventAction STRING > >> [STRUCT(STRUCT('landing_page' AS eventAction) AS eventInfo), STRUCT(STRUCT('model_selection_page' AS eventAction) AS eventInfo)] AS hits UNION ALL
SELECT '1' AS fullvisitorid, ARRAY<STRUCT<eventInfo STRUCT<eventAction STRING > >> [STRUCT(STRUCT('model_selection_page' AS eventAction) AS eventInfo), STRUCT(STRUCT('model_selection_page' AS eventAction) AS eventInfo)] AS hits
)
SELECT
SUM((SELECT COUNTIF(eventInfo.eventAction = 'landing_page') FROM UNNEST(hits))) Landing_Page,
SUM((SELECT COUNTIF(eventInfo.eventAction = 'model_selection_page') FROM UNNEST(hits) WHERE EXISTS(SELECT 1 FROM UNNEST(hits) WHERE eventInfo.eventAction = 'landing_page'))) Model_Selection
FROM data
お知らせイベント 'landing_page'を呼び出し、イベント 'model_selection_page'を発生させました。このレポートがGAで正しく作成されていることを確認してください(「landing_page」が発生した顧客のみでカスタマイズされたレポートを作成してから、「model_selection_page」を検索する2番目のフィルタを適用することもできます)。
は、[EDIT]:
あなたは、セッションおよびユーザーレベルでこのカウントをもたらすことについてのあなたのコメントに尋ねました。各セッションをカウントするため、あなたは各サブクエリ評価のための1に結果を制限することができ、そのよう:個別のユーザーをカウントするための
SELECT
SUM((SELECT 1 FROM UNNEST(hits) WHERE eventInfo.eventAction = 'landing_page' LIMIT 1)) Landing_Page,
SUM((SELECT 1 FROM UNNEST(hits) WHERE EXISTS(SELECT 1 FROM UNNEST(hits) WHERE eventInfo.eventAction = 'landing_page') AND eventInfo.eventAction = 'model_selection_page' LIMIT 1)) Model_Selection
FROM data
、考え方は同じですが、COUNT(DISTINCT)
操作を適用する必要があるだろう、ように:
SELECT
COUNT(DISTINCT(SELECT fullvisitorid FROM UNNEST(hits) WHERE eventInfo.eventAction = 'landing_page' LIMIT 1)) Landing_Page,
COUNT(DISTINCT(SELECT fullvisitorid FROM UNNEST(hits) WHERE EXISTS(SELECT 1 FROM UNNEST(hits) WHERE eventInfo.eventAction = 'landing_page') AND eventInfo.eventAction = 'model_selection_page' LIMIT 1)) Model_Selection
FROM data
こんにちはウィリアン、あなたの答えをありがとう。あなたが使っている面白いアプローチです。しかし、クイック質問。この構造を使って、ユーザーとセッションを区別してください。それは、カウントされているものがその場合の合計イベントであるように見えます。 ありがとう! – Jacob
@Jacobこれを参照している別の質問のおかげで、私はあなたのコメントを見つけました。私は私の答えを編集した、うまくいけば、これはあなたが探しているものです。それが動作するかどうか私に教えてください:) –