@albertalexandrov

Как сагрегировать данные из JSONB?

Есть jsonb-ы (см. скриншот). Заранее ключи неизвестны. Значения ключей - jsonb, в которых интересующие данные хранятся в status. Оно может принимать значения FINISHED, PENDING, FAILURE.

Пример данных одной строки:

{
    "79361fa7-4d71-49f0-a035-a0355e4fd280_1": {
        "retry": 10,
        "status": "FINISHED",
        "interval": "2017-10-01 - 2017-11-01"
    },
    "79361fa7-4d71-49f0-a035-a0355e4fd280_2": {
        "retry": 10,
        "status": "PENDING",
        "interval": "2017-10-01 - 2017-11-01"
    },
    "79361fa7-4d71-49f0-a035-a0355e4fd280_3": {
        "retry": 10,
        "status": "FINISHED",
        "interval": "2017-10-01 - 2017-11-01"
    }
}

5d00b7a7cdc8c127205343.jpeg

Требуется посчитать, сколько чего и в каком количестве. То есть, например, FINISHED: 5, FAILURE: 1 и тд.

Прошу подсказать
  • Вопрос задан
  • 161 просмотр
Решения вопроса 1
0xD34F
@0xD34F
SELECT t.value->>'status' AS status, count(t.value->>'status')
FROM table_name, jsonb_each(table_name.jsonb_column_name) AS t
GROUP BY status
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы