2016-11-04 111 views
2

我正在通過使用bigquery進行Firebase分析查詢的一些示例。 我有這樣的記錄。bigquery嵌套和重複字段查詢

event_dim:[ 

    「name」:」MOVE」, 

    「params」:[ 

    { 

     「key」:」npc_id」, 

     「value」:{ 

       "string_value": 「11」, 

       "int_value": null, 

       "float_value": null, 

       "double_value": null 

      } 

    }, 

    { 

     「key」:」posX」, 

     「value」:{ 

       "string_value": null, 

       "int_value": null, 

       "float_value": null, 

       "double_value": 「10.0」 

      } 

    }, 

    { 

     「key」:」posY」, 

     「value」:{ 

       "string_value": null, 

       "int_value": null, 

       "float_value": null, 

       "double_value": 「12.0」 

      } 

    }, 

] 

我該如何查詢這個數據導致這樣的結果?

name | npc_id | posX | posY

MOVE | 11 | 10.0 | 12.0

+0

你能否看到這個過去的問題是否有助於首先? http://stackoverflow.com/questions/40406286/query-key-value-in-different-columns-from-google-bigquery/40406765#40406765 –

回答

2

工作查詢:

#StandardSQL 
SELECT * FROM (
    SELECT 
    e.name, 
    (SELECT value.string_value FROM UNNEST(e.params) WHERE key = "item_name") AS item_name, 
    (SELECT value.int_value FROM UNNEST(e.params) WHERE key = "value") AS value 
    FROM 
    `firebase-analytics-sample-data.ios_dataset.app_events_20160601`, 
    UNNEST(event_dim) as e 
) 
WHERE item_name IS NOT null 

祕密是UNNEST嵌套事件記錄,然後UNNEST嵌套的參數,可以找一個用正確的密鑰。