2016-11-04 11 views
2

私は、FireFoxアナリティクスクエリの例をbigqueryを使用して作成しています。 私はこのような記録を持っています。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 

秘密は、右キーと1を探し、UNNESTにネストされたイベント記録し、その後UNNESTネストされたのparamsです。

関連する問題