如何从 Postgres 中的 table 获取不同的值

How to get distinct values from table in Postgres

我有一个包含 20 列的 table,我想获取每列的不同值

所以如果我有

A  B  C  D ....
----------
z  c  c  d 
z  f  c  f 
a  c  f  d 
z  c  c  d 
b  f  b  d 
z  c  a  d 

我想回去

{ 'A':[z,a,b],
  'B':[c,f],
  'C': [c,f,b,a]
  'D': [d,f]
....
}

查询会是什么样子?

也许你需要

SELECT array_agg(DISTINCT a) a,
       array_agg(DISTINCT b) b,
       array_agg(DISTINCT c) c,
       array_agg(DISTINCT d) d
FROM test;

?

fiddle