Я делаю поперечное перекрестное соединение в массиве jsonb, и я хочу получить row_number (или его эквивалент) для элементов массива. глядя на документы row_number, я вижу, что мне нужно было бы выполнить «порядок по» в дополнение к «разделу по», но на самом деле нет критерия сортировки, который я мог бы использовать - массивы просто имеют установленный порядок, и мне нужно чтобы получить индекс в массив вместе с остальными данными.
В клиентской таблице будут такие записи
{
"id": "cj49q33oa000",
"email": {
"address": "",
"after": "2016-06-28T12:28:58.016Z",
"error": "Et corporis sed."
},
"name": "Arnold Schinner",
"birthdate": "2016-07-29T05:09:33.693Z",
"status": "paused",
"sex": "f",
"waist": [
{
"completed": "2017-06-23T10:37:37.500Z"
},
{
"planned": "2017-06-23T10:37:37.500Z"
},
{
"planned": "2017-06-23T10:37:37.500Z"
},
{
"planned": "2017-06-23T10:37:37.500Z"
}
]
}
и я бы запустил запрос вроде
SELECT client->>'id' AS id, waist.planned
FROM clients
CROSS JOIN LATERAL JSONB_TO_RECORDSET(client->'waist') AS waist(planned TIMESTAMP WITH TIME ZONE)
WHERE waist.planned IS NOT NULL
но мне нужно каким-то образом получить waist.position_in_array
.