I have a postgresql table customers
with name
and features
columns.
features
contains jsonb objects like {"featureA": true, "featureB": false, "featureC":true}
What I'd like to get is an array of those keys in features
where the value is true for each name
, like:
name | features
----------|---------------------
customerA | [featureA, featureC]
customerB | [featureB, featureC]
From this post, I learnt that
SELECT key
FROM jsonb_each()
WHERE value = jsonb 'true'
is how you get keys that are true, but how do I do that for my table customers
?
Something like
SELECT array_agg(key)
FROM jsonb_each((select features from customers))
WHERE value = jsonb 'true'
returns SQL Error [21000]: ERROR: more than one row returned by a subquery used as an expression
.
Any help would be appreciated.