从“数组”类型的列中获取唯一值

问题描述 投票:0回答:2

我有这张桌子:

| arrs |
|:----|
| {10000,10000,10000,10000} |
| {100,200,300} |
| {400,500,600} |
| {100,200,600} |

如何得到这个结果?

| uniques |
|:-------|
| 10000 |
| 100 |
| 200 |
| 300 |
| 400 |
| 500 |
| 600 |

或者这个结果?

| arrUniques |
|:----|
| {10000,100,200,300,400,500,600} |

参见 -> 小提琴

sql arrays postgresql unique distinct
2个回答
2
投票

您应该能够在此处将

UNNEST()
DISTINCT
一起使用:

SELECT DISTINCT UNNEST(arrs) AS uniques
FROM yourTable;

0
投票
  1. 您可以使用

    Distinct unnest
    根据您的第一个场景显示独特的结果:

    SELECT DISTINCT unnest(arr) AS uniques
    FROM "test";
    
  2. 对于在单个数组中显示结果的第二种情况,您可以添加

    array_agg

    SELECT array_agg(DISTINCT unnest(arr)) AS arrUniques
    FROM "test";
    
© www.soinside.com 2019 - 2024. All rights reserved.