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'
我想获取某个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'