У меня есть столбец JSONB
, содержащий list
из objects
.>
Вот схема таблицы:
column Name | Datatype
---------------------
timestamp | timestamp
data | JSONB
Пример данных
1.
timestamp : 2020-02-02 19:01:21.571429+00
data : [
{
"tracker_id": "5",
"position": 1
},
{
"tracker_id": "11",
"position": 2
},
{
"tracker_id": "4",
"position": 1
}
]
2.
timestamp : 2020-02-02 19:01:23.571429+00
data : [
{
"tracker_id": "7",
"position": 3
},
{
"tracker_id": "4",
"position": 2
}
]
3.
timestamp : 2020-02-02 19:02:23.571429+00
data : [
{
"tracker_id": "5",
"position": 2
},
{
"tracker_id": "4",
"position": 1
}
]
Мне нужно найти количество переходов tracker_id
от position: 1
до position: 2
Здесь вывод будет 2
, поскольку tracker_id
4
и 5
изменили свои position
с 1
на 2
.
Примечание
Переход должен быть в порядке возрастания в зависимости от timestamp
Изменение position
не должно быть в последовательных записях.
Я использую расширение timescaledb
До сих пор я пробовал запрашивать объекты в списке отдельных записей, но я не уверен, как объединить объекты списка каждой записи и запросите их.
Каким будет запрос для этого? Должен ли я записать хранимую процедуру вместо этого?