J'essaie de comprendre pourquoi cela fonctionne:Nest une instruction select dans array_to_json (de array_agg (row_to_json())) dans PostgreSQL
select
array_to_json(array_agg(row_to_json(positions_table)))
from (
select
sum(start_month),
function_id,
profile_id
from positions as subquery
group by function_id, profile_id
) as positions_table
Mais cela ne:
select
profiles.id,
(array_to_json(array_agg(row_to_json(
select
sum(start_month),
function_id,
profile_id
from positions as subquery
group by function_id, profile_id
))))
from profiles
Il semble comme je ne suis pas autorisé à mettre l'instruction select...
à l'intérieur array_to_json(array_agg(row_to_json()))
et qu'il a besoin de référencer une table à la place.
Mais je me méfie peut-être de manquer quelque chose.
L'erreur est syntax error near select
.
Pour votre information: au lieu de faire 3 conversions de données (JSON, tableau, JSON) vous devez utiliser 'jsonb_agg()' la place pour votre résultat wishful [voir plus] (https://www.postgresql.org/docs/9.6/ static/functions-aggregate.html). En outre, 'row_to_json' attend' record' en entrée, la sous-requête n'est pas un enregistrement, il est défini comme un ensemble d'enregistrements, donc vous ne pouvez pas vous attendre à ce que function ait pour but de convertir 1 ligne en json pour convertir N lignes. –