我正在尝试使用标准 SQL 语法在 BigQuery 中的 JSON 文件中展平多个(相邻和嵌套)数组。本质上,我正在尝试转换这个嵌套结构:
{
"kind": "person",
"fullName": "John Doe",
"age": 22,
"gender": "Male",
"phoneNumber": {
"areaCode": "206",
"number": "1234567"
},
"children": [{
"name": "Jane",
"gender": "Female",
"age": "6"
}, {
"name": "John",
"gender": "Male",
"age": "15"
}],
"citiesLived": [{
"place": "Seattle",
"yearsLived": ["1995", "1996"]
}, {
"place": "Stockholm",
"yearsLived": ["2005"]
}]
}
进入:
<style type="text/css">
.tg {border-collapse:collapse;border-spacing:0;}
.tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;}
.tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;}
.tg .tg-yw4l{vertical-align:top}
</style>
<table class="tg">
<tr>
<th class="tg-yw4l">Full Name</th>
<th class="tg-yw4l">Age</th>
<th class="tg-yw4l">Gender</th>
<th class="tg-yw4l">PhoneNumber.Area Code</th>
<th class="tg-yw4l">PhoneNumber.Number</th>
<th class="tg-yw4l">Children.Name</th>
<th class="tg-yw4l">Children.Gender</th>
<th class="tg-yw4l">Children.Age</th>
<th class="tg-yw4l">CitiesLived.Place</th>
<th class="tg-yw4l">CitiesLived.YearsLived</th>
</tr>
<tr>
<td class="tg-yw4l">John Doe</td>
<td class="tg-yw4l">22</td>
<td class="tg-yw4l">Male</td>
<td class="tg-yw4l">206</td>
<td class="tg-yw4l">1234567</td>
<td class="tg-yw4l">Jane</td>
<td class="tg-yw4l">Female</td>
<td class="tg-yw4l">6</td>
<td class="tg-yw4l">Seattle</td>
<td class="tg-yw4l">1995</td>
</tr>
<tr>
<td class="tg-yw4l">John Doe</td>
<td class="tg-yw4l">22</td>
<td class="tg-yw4l">Male</td>
<td class="tg-yw4l">206</td>
<td class="tg-yw4l">1234567</td>
<td class="tg-yw4l">John</td>
<td class="tg-yw4l">Male</td>
<td class="tg-yw4l">15</td>
<td class="tg-yw4l">Seattle</td>
<td class="tg-yw4l">1995</td>
</tr>
<tr>
<td class="tg-yw4l">John Doe</td>
<td class="tg-yw4l">22</td>
<td class="tg-yw4l">Male</td>
<td class="tg-yw4l">206</td>
<td class="tg-yw4l">1234567</td>
<td class="tg-yw4l">Jane</td>
<td class="tg-yw4l">Female</td>
<td class="tg-yw4l">6</td>
<td class="tg-yw4l">Seattle</td>
<td class="tg-yw4l">1996</td>
</tr>
<tr>
<td class="tg-yw4l">John Doe</td>
<td class="tg-yw4l">22</td>
<td class="tg-yw4l">Male</td>
<td class="tg-yw4l">206</td>
<td class="tg-yw4l">1234567</td>
<td class="tg-yw4l">Jane</td>
<td class="tg-yw4l">Female</td>
<td class="tg-yw4l">6</td>
<td class="tg-yw4l">Stockholm</td>
<td class="tg-yw4l">2005</td>
</tr>
<tr>
<td class="tg-yw4l">John Doe</td>
<td class="tg-yw4l">22</td>
<td class="tg-yw4l">Male</td>
<td class="tg-yw4l">206</td>
<td class="tg-yw4l">1234567</td>
<td class="tg-yw4l">John</td>
<td class="tg-yw4l">Male</td>
<td class="tg-yw4l">15</td>
<td class="tg-yw4l">Seattle</td>
<td class="tg-yw4l">1996</td>
</tr>
<tr>
<td class="tg-yw4l">John Doe</td>
<td class="tg-yw4l">22</td>
<td class="tg-yw4l">Male</td>
<td class="tg-yw4l">206</td>
<td class="tg-yw4l">1234567</td>
<td class="tg-yw4l">John</td>
<td class="tg-yw4l">Male</td>
<td class="tg-yw4l">15</td>
<td class="tg-yw4l">Stockholm</td>
<td class="tg-yw4l">2005</td>
</tr>
</table>
我将 CROSS JOIN 与 UNNEST 一起使用,但我被困在嵌套数组部分(CitiesLived 中的 YearsLived 数组)。如何正确展平它?
任何指针将不胜感激!