如何排序使用json聚合的子查詢的結果?Postgresql jsonb_agg子查詢排序
如果我有這樣的一個模式:
CREATE TABLE plans(id integer NOT NULL, name character varying(255));
CREATE TABLE plan_items (id integer NOT NULL, plan_id integer NOT NULL, expected_at date, status integer);
我聚集plan_items通過一個子查詢JSON列結果。 像這樣:
SELECT
plans.id,
plans.name,
jsonb_agg((SELECT pi_cols FROM
(SELECT plan_items.id, plan_items.expected_at, plan_items.status) pi_cols
)) AS plan_items_data
FROM
plans
INNER JOIN plan_items ON plan_items.plan_id = plans.id
GROUP BY
plans.id,
plans.name
ORDER BY plans.id;
的JSON總工作正常,給我我需要的結果。好。 但我不能訂購結果。
我已經試過:
jsonb_agg((SELECT pi_cols FROM
(SELECT plan_items.id, plan_items.expected_at, plan_items.status ORDER BY plan_items.expected_at) pi_cols
)) AS plan_items_data
也:
jsonb_agg((SELECT pi_cols FROM
(SELECT plan_items.id, plan_items.expected_at, plan_items.status) pi_cols ORDER BY pi_cols.expected_at
)) AS plan_items_data
但這些都不解決。
任何想法?
嘗試使用的骨料的擴展形式:'jsonb_agg(... ORDER BY plan_items.expected_at)' – Abelisto