提取 JSON 对象的一部分,该对象是 BigQuery table 中包含的数组的一部分
Extract a parts of a JSON object that is part of an Array contained in a BigQuery table
我想提取我认为是 BigQuery 中 JSON 数组的内容。
这是 BigQuery 中的当前 Table:
CreatitveID
ResponsiveSearchAdHeadlines
501
[{ "assetText": "Object 999 Car", "assetId": 883,"assetPerformanceLabel": "PENDING","assetApprovalStatus": "APPROVED" }, { "assetText": "Die Schönheit des Rennsports", "assetId": 605, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Mehr erfahren", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Form folgt Funktion", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Hier entdecken", "assetId": 8832, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Eine neue Dimension des Stils", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Alle Details auf einen Blick", "assetId": 605, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "999 Car Probefahrt", "assetId": 605, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "999 Car Konfigurator", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Angebot anfordern", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Probefahrt vereinbaren", "assetId": 883, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Grandioser Stil", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Einsteigen und losfahren", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Sportlich – rasant – Abenteuer", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Erwarte den Rausch", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }]
501
[{ "assetText": "Object 999 Car", "assetId": 883,"assetPerformanceLabel": "PENDING","assetApprovalStatus": "APPROVED" }, { "assetText": "Die Schönheit des Rennsports", "assetId": 605, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Mehr erfahren", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Form folgt Funktion", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Hier entdecken", "assetId": 8832, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Eine neue Dimension des Stils", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Alle Details auf einen Blick", "assetId": 605, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "999 Car Probefahrt", "assetId": 605, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "999 Car Konfigurator", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Angebot anfordern", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Probefahrt vereinbaren", "assetId": 883, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Grandioser Stil", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Einsteigen und losfahren", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Sportlich – rasant – Abenteuer", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Erwarte den Rausch", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }]
期望结果 table:
CreatitveID
ResponsiveSearchAdHeadlines_assetText_ID
ResponsiveSearchAdHeadlines_assetText
501
883
Object 999 Car
501
605
Die Schönheit des Rennsports
501
134
Mehr erfahren
...
...
...
我认为我应该使用 JSON_EXTRACT_SCALAR(),但我真的不知道整个查询应该是什么样子。
一些想法?
考虑以下方法
select CreatitveID,
json_value(Headline, '$.assetId') assetId,
json_value(Headline, '$.assetText') assetText
from your_table,
unnest(json_extract_array(ResponsiveSearchAdHeadlines)) Headline
如果应用于您问题中的示例数据 - 输出为
我想提取我认为是 BigQuery 中 JSON 数组的内容。
这是 BigQuery 中的当前 Table:
CreatitveID | ResponsiveSearchAdHeadlines |
---|---|
501 | [{ "assetText": "Object 999 Car", "assetId": 883,"assetPerformanceLabel": "PENDING","assetApprovalStatus": "APPROVED" }, { "assetText": "Die Schönheit des Rennsports", "assetId": 605, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Mehr erfahren", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Form folgt Funktion", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Hier entdecken", "assetId": 8832, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Eine neue Dimension des Stils", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Alle Details auf einen Blick", "assetId": 605, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "999 Car Probefahrt", "assetId": 605, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "999 Car Konfigurator", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Angebot anfordern", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Probefahrt vereinbaren", "assetId": 883, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Grandioser Stil", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Einsteigen und losfahren", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Sportlich – rasant – Abenteuer", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Erwarte den Rausch", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }] |
501 | [{ "assetText": "Object 999 Car", "assetId": 883,"assetPerformanceLabel": "PENDING","assetApprovalStatus": "APPROVED" }, { "assetText": "Die Schönheit des Rennsports", "assetId": 605, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Mehr erfahren", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Form folgt Funktion", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Hier entdecken", "assetId": 8832, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Eine neue Dimension des Stils", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Alle Details auf einen Blick", "assetId": 605, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "999 Car Probefahrt", "assetId": 605, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "999 Car Konfigurator", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Angebot anfordern", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Probefahrt vereinbaren", "assetId": 883, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Grandioser Stil", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Einsteigen und losfahren", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Sportlich – rasant – Abenteuer", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Erwarte den Rausch", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }] |
期望结果 table:
CreatitveID | ResponsiveSearchAdHeadlines_assetText_ID | ResponsiveSearchAdHeadlines_assetText |
---|---|---|
501 | 883 | Object 999 Car |
501 | 605 | Die Schönheit des Rennsports |
501 | 134 | Mehr erfahren |
... | ... | ... |
我认为我应该使用 JSON_EXTRACT_SCALAR(),但我真的不知道整个查询应该是什么样子。
一些想法?
考虑以下方法
select CreatitveID,
json_value(Headline, '$.assetId') assetId,
json_value(Headline, '$.assetText') assetText
from your_table,
unnest(json_extract_array(ResponsiveSearchAdHeadlines)) Headline
如果应用于您问题中的示例数据 - 输出为