Postgresql GRES后外侧未测试-至少1个值?

Postgresql GRES后外侧未测试-至少1个值?,postgresql,Postgresql,我有一个表,其中有一个可选的字段列,类型为jsonb[]。我正在使用一个横向unnest将这些字段拆分成行,然后使用一个聚合按我想要的顺序再次组合它们 SELECT id, name, ARRAY_AGG(v ORDER BY v->'priority' DESC) as fields FROM results, LATERAL UNNEST(fields) AS f(v) GROUP BY 1, 2 但由于字段是可选的,因此并非所有行都有要从unnest开始的值。是否有一种方法可以至少

我有一个表,其中有一个可选的
字段
列,类型为
jsonb[]
。我正在使用一个横向unnest将这些字段拆分成行,然后使用一个聚合按我想要的顺序再次组合它们

SELECT id, name, ARRAY_AGG(v ORDER BY v->'priority' DESC) as fields
FROM results, LATERAL UNNEST(fields) AS f(v)
GROUP BY 1, 2

但由于
字段
是可选的,因此并非所有行都有要从unnest开始的值。是否有一种方法可以至少取消一行,即使它是空的?或者有没有更好的方法将订单应用到退出时的
jsonb[]
列,这样我就可以避免这种不必要的横向操作?

使用
左连接横向操作

SELECT 
    id
  , name
  , ARRAY_AGG(v ORDER BY v->'priority' DESC) as fields
FROM results
LEFT JOIN LATERAL UNNEST(fields) AS f(v) ON TRUE
GROUP BY 1, 2

非常感谢。这正是我想要的。更新了我的原件以删除
3