PostgreSQL unnest () con número de elemento

Cuando tengo una columna con valores separados, puedo usar launnest() función:

myTable
id | elements
---+------------
1  |ab,cd,efg,hi
2  |jk,lm,no,pq
3  |rstuv,wxyz

select id, unnest(string_to_array(elements, ',')) AS elem
from myTable

id | elem
---+-----
1  | ab
1  | cd
1  | efg
1  | hi
2  | jk
...

¿Cómo puedo incluir números de elementos? Es decir.

id | elem | nr
---+------+---
1  | ab   | 1
1  | cd   | 2
1  | efg  | 3
1  | hi   | 4
2  | jk   | 1
...

Quiero elposición origina de cada elemento en la cadena de origen. He intentado con funciones de ventana row_number(), rank() etc.) pero siempre obtengo1. ¿Quizás porque están en la misma fila de la tabla fuente?

Sé que es un mal diseño de mesa. No es mío, solo estoy tratando de arreglarlo.

Respuestas a la pregunta(10)

Su respuesta a la pregunta