【发布时间】:2021-01-14 11:49:39
【问题描述】:
我有一个简单的查询如下:
select json_agg(json_build_object(
'name','name',
'score',random(),
'snippet','random text'
)) as data
from table;
出于这个问题的目的,我已经简化了上述内容。
这会导致返回如下内容:
[{"name" : "name", "score" : 0.896277624648064, "snippet" : "random text"},
{"name" : "name", "score" : 0.845714892726392, "snippet" : "random text"},
{"name" : "name", "score" : 0.688958259299397, "snippet" : "random text"},
{"name" : "name", "score" : 0.870620720088482, "snippet" : "random text"},
{"name" : "name", "score" : 0.282366622239351, "snippet" : "random text"}]
有没有办法可以按对象内的分数对底层 json_agg 进行排序?
我试过了:
select json_agg(json_build_object(
'name','name',
'score',random(),
'snippet','random text'
) order by score) as data
from table;
还有这个:
select json_agg(json_build_object(
'name','name',
'score',random(),
'snippet','random text'
) a order by a->>'score') as data
from table;
但是以上都失败了
【问题讨论】:
标签: sql json postgresql