postgresql return jsonb 对象的数量

postgresql return the count of jsonb objects

我想获取某个id下所有商品的数量

我试过了:

SELECT
    count(jsonb_object_keys(data #> '{products}')) as numProducts 
FROM
    appointment_intakes 
WHERE
    appointment_intakes.id = 'VGDKMjdxn'

我得到:

ERROR:  set-valued function called in context that cannot accept a set

当我 运行 上面没有 count 函数时,我得到一个键列表。

知道我做错了什么吗?

谢谢。

必须在 FROM 子句中调用集值函数。使用横向连接:

SELECT
    count(keys) as numProducts 
FROM
    appointment_intakes, 
    LATERAL jsonb_object_keys(data #> '{products}') keys
WHERE
    appointment_intakes.id = 'VGDKMjdxn'