2017-08-17 23 views
1

我試圖創建一個查詢,允許我也看到firebse_event_origin =「auto」和firebase_screen_class = TicketViewController的次數。Bigquery&Firebase Analytics - 如何根據不同的參數選擇一個事件

我試着把AND語句看成如下圖所示,但我沒有得到任何結果。 (ps。有些情況發生)。

https://i.stack.imgur.com/XyX2R.png

基本上我想要的是知道: 多少screen_view事件發生時
firebase_event_origin = 「自動」
firebase_screen_class = 「TicketViewController」

+2

您可以直接在您的問題中包含查詢文本,而不是圖像? –

+0

@ElliottBrossard是當然 - SELECT * FROM'ruter-pilot.no_ruter_RuterPilot_WIP_dev_IOS.app_events_intraday_20170823',UNNEST(event_dim)作爲編 UNNEST(ed.params)作爲EDP WHERE ed.name = 「user_engagement」 和(edp.key =「firebase_event_origin」和(edp.value.string_value =「auto」))和(edp.key =「firebase_screen_class」和edp.value.string_value =「TicketViewController」) –

回答

1

這可能是你在找什麼,或可能給你一些啓示:

SELECT 
    count(1) screen_views 
FROM `ruter-pilot.no_ruter_RuterPilot_WPI_IOS.app_events_20170816` 
WHERE EXISTS(SELECT 1 FROM UNNEST(event_dim) ed WHERE ed.name = 'user_engagement' AND (EXISTS(SELECT 1 FROM UNNEST(ed.params) params WHERE params.key = 'firebase_event_origin' AND value.string_value = 'auto')) AND(EXISTS(SELECT 1 FROM UNNEST(ed.params) params WHERE params.key = 'firebase_screen_class' AND value.string_value = 'TicketViewController'))) 

你可以用模擬數據玩:

WITH data AS(
    SELECT ARRAY< STRUCT<name STRING, params ARRAY< STRUCT<key STRING, value STRUCT<string_value STRING> > > > > [STRUCT('user_engagement' AS name, [STRUCT('key' AS key, STRUCT('value' AS string_value) AS value), STRUCT('firebase_event_origin' AS key, STRUCT('auto' AS string_value) AS value)] AS params)] event_dim UNION ALL 
    SELECT ARRAY< STRUCT<name STRING, params ARRAY< STRUCT<key STRING, value STRUCT<string_value STRING> > > > > [STRUCT('user_engagement' AS name, [STRUCT('firebase_event_origin' AS key, STRUCT('auto' AS string_value) AS value), STRUCT('firebase_screen_class' AS key, STRUCT('TicketViewController' AS string_value) AS value)] AS params)] event_dim UNION ALL 
    SELECT ARRAY< STRUCT<name STRING, params ARRAY< STRUCT<key STRING, value STRUCT<string_value STRING> > > > > [STRUCT('user_engagement' AS name, [STRUCT('firebase_event_origin' AS key, STRUCT('auto' AS string_value) AS value), STRUCT('firebase_screen_class' AS key, STRUCT('TicketViewController' AS string_value) AS value), STRUCT('firebase_event_origin' AS key, STRUCT('auto' AS string_value) AS value), STRUCT('firebase_screen_class' AS key, STRUCT('TicketViewController' AS string_value) AS value)] AS params)] event_dim UNION ALL 
    SELECT ARRAY< STRUCT<name STRING, params ARRAY< STRUCT<key STRING, value STRUCT<string_value STRING> > > > > [STRUCT('user_not_engagement' AS name, [STRUCT('key' AS key, STRUCT('value' AS string_value) AS value), STRUCT('firebase_event_origin' AS key, STRUCT('auto' AS string_value) AS value)] AS params)] event_dim 
) 

SELECT 
    count(1) screen_views 
FROM data 
WHERE EXISTS(SELECT 1 FROM UNNEST(event_dim) ed WHERE ed.name = 'user_engagement' AND (EXISTS(SELECT 1 FROM UNNEST(ed.params) params WHERE params.key = 'firebase_event_origin' AND value.string_value = 'auto')) AND(EXISTS(SELECT 1 FROM UNNEST(ed.params) params WHERE params.key = 'firebase_screen_class' AND value.string_value = 'TicketViewController'))) 

基本上查詢查找給定事件名稱同時具有指定的params的用戶,並計算髮生這種情況的所有行。

相關問題