0

我正在尝试使用标准 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 数组)。如何正确展平它?

任何指针将不胜感激!

4

0 回答 0