Извлечение значений из нескольких значений атрибутов из JSON с помощью Google BigQuery - PullRequest
0 голосов
/ 19 мая 2019

У меня есть такой столбец в GBQ.

[{rank_start: 1, rank_end: 1, prize: {unit_type: 'UNIT_TYPE1', units: 50, unit_currency: 'UNIT_CURRENCY1'}}, {rank_start: 2, rank_end: 50, prize: {unit_type: 'UNIT_TYPE2', units: 20, unit_currency: 'UNIT_CURRENCY2'}}, {rank_start: 51, rank_end: 100, prize: {unit_type: 'UNIT_TYPE3', units: 10, unit_currency: 'UNIT_CURRENCY3'}}, {rank_start: 101, rank_end: 500, prize: {unit_type: 'UNIT_TYPE4', units: 5, unit_currency: 'UNIT_CURRENCY4'}}]

Я хочу извлечь значения, такие как rank_start, rank_end, unit_type, unit, unit_currency для каждого рангового диапазона в ГБК.

Я знаю, как это сделать, если у нас есть только один диапазон рангов, т. Е. С использованием JSON_EXTRACT () или JSON_EXTRACT_SCALAR () ... Я бы завершил его.

Но дело в том, что в JSON у нас больше, чем значение атрибута.

Кто-нибудь может помочь, как мы можем сделать это в GBQ?

Я пробовал грубый способ сделать это, то есть разделить запятыми несколько раз, а затем разделить с помощью ':', а затем заменить '' 'на' ', и я принимаю значения OFFSET при каждом разделении в соответствии с необходимостью ,

Но из-за этого код становится слишком неуклюжим, поскольку многие операции REPLACE & SPLIT выполняются и становятся неэффективными.

Я хотел бы посмотреть, есть ли возможность сделать это в GBQ, используя функции JSON, упомянутые выше ??

Заранее спасибо !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...