Postgresql Postgres JSON_AGG和订单不一起工作
我有一个如下的查询:Postgresql Postgres JSON_AGG和订单不一起工作,postgresql,Postgresql,我有一个如下的查询: SELECT *, (SELECT json_agg(deals.*) FROM deals WHERE vendors.id = deals.vendorid) as deals FROM vendors SELECT *, (SELECT json_agg(deals.*) FROM deals WHERE vendors.id = deals.vendorid ORDER BY priority) as deals FROM vendors 但是,当我尝试按dea
SELECT *,
(SELECT json_agg(deals.*) FROM deals WHERE vendors.id = deals.vendorid) as deals
FROM vendors
SELECT *,
(SELECT json_agg(deals.*) FROM deals WHERE vendors.id = deals.vendorid ORDER BY priority) as deals
FROM vendors
但是,当我尝试按deals
表中的字段排序时,该查询非常有效,如下所示:
SELECT *,
(SELECT json_agg(deals.*) FROM deals WHERE vendors.id = deals.vendorid) as deals
FROM vendors
SELECT *,
(SELECT json_agg(deals.*) FROM deals WHERE vendors.id = deals.vendorid ORDER BY priority) as deals
FROM vendors
我得到以下错误:
error: column "deals.priority" must appear in the GROUP BY clause or be used in an aggregate function
你知道如何进行这样的排序吗?语法不应该是这样的吗
(SELECT json_agg(deals.*) WITHIN GROUP (ORDER BY priority)
FROM deals
WHERE vendors.id = deals.vendorid
) as deals
文档是。您可以
SELECT *,
(SELECT json_agg(deals.* ORDER BY priority) FROM deals WHERE vendors.id = deals.vendorid) as deals
FROM vendors
请参阅。这很好,我觉得比其他选项短。我很惊讶组内的
与json\u agg
一起工作…?