Получите доступ к массиву столбцов и сохраните его в новой таблице. - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть такая таблица:

| id | cars                     |      owner     |
|----|--------------------------|----------------|
|  1 | {tesla, bmw, mercedes}   | Chris Houghton |
|  2 | {toyota, bmw, fiat}      | Matt Quinn     |

Есть ли способ получить доступ к значениям DISTINCT массива таблицы автомобилей и сохранить их в новой таблице без повторяющихся значений?

Я хочуэтот стол

| brands |
|--------|
|  tesla |
|  bmw   |
|mercedes|
| toyota |
|  fiat  |

1 Ответ

2 голосов
/ 05 апреля 2019

Я полагаю, вы ищете такое утверждение.

SELECT 
 DISTINCT 
  table_array.array_unnest
FROM (
  SELECT 
   UNNEST(cars)
  FROM 
   <table>
) AS table_array(array_unnest)

см. demo

Это действительно работает, но как я могу сохранить их, например, в столбце "бренд" таблицы Manufactures.

INSERT INTO 
 Manufactures 
(brand)
SELECT 
  DISTINCT 
    table_array.array_unnest
  FROM (
    SELECT 
      UNNEST(cars)
    FROM 
     <table>
  ) AS table_array(array_unnest)

см. демо

...