2017-05-04 96 views
1

通過將Firebase中的自定義事件導出到BigQuery,可以在其中存在多個鍵值參數。我似乎無法弄清楚如何使用「標準SQL」選擇其中的一種以上。BigQuery選擇多個鍵值

How would I project both msg and succes values (string_value and int_value) into one record

+0

我知道需要最小化,完整和可驗證的問題,以便爲Stackoverflow及其用戶增加價值。然而,圍繞這個問題存在的問題(我首先自然而然地找到的)太大而且很複雜。我真正想知道的是如何在BigQuery維度中提取多個鍵值參數。 Elliott Brossard的回覆對我來說非常合適,所以對其他人也應該如此。 –

回答

2

比方說,你想選擇與firebase_event_origin對應的string_valuefirebase_screen_id所有control_reading事件相關的int_value。您可以將查詢表示爲:

#standardSQL 
SELECT 
    (SELECT param.value.string_value 
    FROM UNNEST(event_dim.params) AS param 
    WHERE param.key = 'firebase_event_origin') AS firebase_event_origin, 
    (SELECT param.value.int_value 
    FROM UNNEST(event_dim.params) AS param 
    WHERE param.key = 'firebase_screen_id') AS firebase_screen_id 
FROM `your_dataset.your_table_*` 
CROSS JOIN UNNEST(event_dim) AS event_dim 
WHERE _TABLE_SUFFIX BETWEEN '20170501' AND '20170503' AND 
    event_dim.name = 'control_reading'; 
+0

所以他們的關鍵是在子查詢的維上使用CROSS JOIN UNNEST。像魅力一樣工作,謝謝! –