0
我在jsonb數組上進行交叉連接,我正在尋找數組元素的row_number(或其等效值)。查看row_number文檔我發現除了「partition by」之外,我還需要做一個「order by」,但是沒有真正的排序標準可以使用 - 數組只有一個設置的順序,而且我需要將索引與其餘數據一起檢索到數組中。從jsonb_array_elements或jsonb_to_recordset獲取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
以某種方式。