I have this custom function querying a group by from a datalist. As a result I receive my unique query result but as nested objects [{substance: 'value'}]
. It would prefer my response to be [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 = $1 group by api.emissions.substance;'
language sql;
Response:
[
{
"substance": "Arseen"
},
{
"substance": "Benzo[b]fluorantheen"
},
...
]
Response required:
[
"Arseen",
"Benzo fluorantheen",
...
]
You'll need to return an array of text(text[]
) instead of table(text)
and use the array_agg function on the query. Like:
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 = $1
group by api.emissions.substance;
$$ language sql;