Я использую PostgreSQL (v11.6), в котором есть таблица со столбцом JSONB , который содержит значение ниже. В столбце может быть несколько значений, т.е. могут быть идентификаторы от 1 до 100, например id: 1 -100, я показал только 2 записи в моем образце.
В настоящее время у меня есть запрос, который возвращает количество элементы для каждой строки в столбце, показанном ниже, который работает хорошо.
SELECT jsonb_array_elements(my_column::jsonb) FROM my_table
Я хочу получить количество элементов, которые соответствуют определенному условию для каждой строки например, где selected не является нулевым, в этом примере ниже счетчик будет 1 . Я некоторое время исследовал это и не нашел способа solid установить фильтр. Совет оценен.
[
{
"id": 1,
"choices": [
{
"id": 100,
"misc_data": [
{
"id": 1000
},
{
"id": 1002
}
]
}
],
**"chosen": 2**
},
{
"id": 2,
"choices": [
{
"id": 200,
"misc_data": [
{
"id": 2002
},
{
"id": 2050
}
]
}
]
}
]