Когда у меня есть столбец с разделенными значениями, я могу использовать функцию unnest ()
:
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
...
Как я могу включить элемент числа? То есть:
id | elem | nr
---+------+---
1 | ab | 1
1 | cd | 2
1 | efg | 3
1 | hi | 4
2 | jk | 1
...
Мне нужна исходная позиция каждого элемента в исходной строке. Я пробовал использовать оконные функции ( row_number ()
, rank ()
и т. Д.), Но я всегда получаю 1
. Может быть, потому что они находятся в одной строке исходной таблицы?
Я знаю, что это плохой дизайн таблицы. Это не мое, я просто пытаюсь это исправить.