Извлечение и форматирование значений в виде строк из массива в массиве в массиве - PullRequest
0 голосов
/ 13 июня 2019

Необработанная структура данных выглядит следующим образом:

superarray:[
  array1:{
    subarray1:("id":"id1", "position":"1"),
    subarray2:("id":"id2", "position":"2"), 
    subarray3:("id":"id3", "position":"3"),
    subarray4:("id":"id4"), "position":"4")
  },  
  array2:{
    subarray5:("id":"id5", "position":"5"),
    subarray6:("id":"id6", "position":"6"), 
    subarray7:("id":"id7", "position":"7"),
    subarray8:("id":"id8", "position":"8") 
  },
  array3:{
    subarray9:("id":"id9, "position":"9")
  }
]

Я могу извлечь самый внешний уровень массивов, используя FROM table, UNNEST(superarray) as super_array, чтобы получить следующее:

+------------+-------------------+------------------+----------------------+
| Row_number | super_array.array | super_array.ids  | super_array.position |
+------------+-------------------+------------------+----------------------+
|          1 | array1            | id1              |                    1 |
|            |                   | id2              |                    2 |
|            |                   | id3              |                    3 |
|            |                   | id4              |                    4 |
|          2 | array2            | id5              |                    5 |
|            |                   | id6              |                    6 |
|            |                   | id7              |                    7 |
|            |                   | id8              |                    8 |
|          3 | array3            | id9              |                    9 |
+------------+-------------------+------------------+----------------------+

Но яУ меня проблемы с получением внутреннего уровня, чтобы дать что-то вроде следующего:

+------------+-------------+------------+----------------+
| Row_number | array.array | array.ids  | array.position |
+------------+-------------+------------+----------------+
|          1 | array1      | id1        |              1 |
|          2 | array1      | id2        |              2 |
|          3 | array1      | id3        |              3 |
|          4 | array1      | id4        |              4 |
|          5 | array2      | id5        |              5 |
|          6 | array2      | id6        |              6 |
|          7 | array2      | id7        |              7 |
|          8 | array2      | id8        |              8 |
|          9 | array3      | id9        |              9 |
+------------+-------------+------------+----------------+

Как бы я мог сделать секунду UNNEST, не получая ошибку дублирующегося столбца?Нужно ли INSERT INTO добавлять новые строки для каждого индивидуального идентификатора?

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