访问列数组并将其存储在新表中



>我有这样的表格:

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

有没有办法访问汽车表数组 DISTINCT 值并将它们存储在没有重复值的新表中?

我想要这张桌子

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

我相信你正在寻找这种陈述。

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

查看演示

这确实有效,但是例如我如何将它们存储在列中 表的"品牌"制造。

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

查看演示

最新更新