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.