PostgREST 自定义函数平面数组而不是 key:value

PostgREST custom function flat array instead of key:value

我有这个自定义函数从数据列表中查询分组依据。结果,我收到了我唯一的查询结果,但作为嵌套对象 [{substance: 'value'}]。它希望我的回复是 [value, value, value]

SQL:

create or replace function api.substances(substance_group text) returns table(substance text) 
as 'select api.emissions.substance from api.emissions where api.emissions.substance_group =  group by api.emissions.substance;'
language sql;

回复:

[
  {
    "substance": "Arseen"
  },
  {
    "substance": "Benzo[b]fluorantheen"
  },
  ...
]

需要回复:

[
  "Arseen",
  "Benzo fluorantheen",
  ...
]

您需要 return 文本数组 (text[]) 而不是 table(text) 并在查询中使用 array_agg 函数。喜欢:

create or replace function api.substances(substance_group text) returns text[] as $$
  select array_agg(api.emissions.substance)
  from api.emissions
  where api.emissions.substance_group = 
  group by api.emissions.substance;
$$ language sql;