這可能是你在找什麼,或可能給你一些啓示:
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
的用戶,並計算髮生這種情況的所有行。
您可以直接在您的問題中包含查詢文本,而不是圖像? –
@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」) –