Ich versuche zu verstehen, warum dies funktioniert:Nest eine select-Anweisung innerhalb array_to_json (array_agg (row_to_json())) in 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
Aber dies nicht:
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
Es scheint, wie ich bin nicht erlaubt, die select...
Anweisung innerhalb array_to_json(array_agg(row_to_json()))
setzen und dass es stattdessen eine Tabelle verweisen muss.
Aber ich bin verdächtig, ich könnte etwas verpassen.
Der Fehler ist syntax error near select
.
FYI: anstatt 3 Datenkonvertierungen (JSON, Array, JSON) zu machen, sollten Sie 'jsonb_agg()' stattdessen für Ihr Wunschergebnis verwenden [mehr] (https://www.postgresql.org/docs/9.6/ static/functions-aggregate.html). Außerdem erwartet 'row_to_json'' record' als Eingabe, Unterabfrage ist kein Datensatz, der aus Datensätzen besteht. Sie können also keine Funktion erwarten, deren Zweck es ist, 1 einzelne Zeile in json umzuwandeln, um N Zeilen zu konvertieren. –