我试图获取多个列的不同值作为数组。我尝试使用功能array_agg
Color | State | Item
=================================
Red | New York | Balloon
Pink | Virginia | Table
Black | Utah | Table
我想要一张桌子
Column_name | Options
===============================
Color | [Red,Pink,Black]
State | [New York,Virginia,Utah]
Item | [Balloon,Table]
我已经尝试过了:
select (array_agg(distinct "Color")) from sample_table
union
select (array_agg(distinct "State")) from sample_table
union
select (array_agg(distinct "Item")) from sample_table
union
我被困在如何获取相应的列名中。.
答案 0 :(得分:1)
您只需要添加您的column_name:
SELECT 'Color' AS column_name, array_agg(distinct "Color") AS options from sample_table
UNION
SELECT 'State' AS column_name, array_agg(distinct "State") AS options from sample_table
UNION
SELECT 'Item' AS column_name, array_agg(distinct "Item") AS options from sample_table
工作Fiddle