[POSTRESQL] lub [ORACLE] Łączenie rekordów w stringa

Odpowiedz Nowy wątek
2019-05-14 17:29
0

Hej,

Jest jakiś sposób jak dla obiektu o ID = 2 mam 90 rekordów (współrzędnych), które są w kolejności po kolumnie INDEX_WSPOLRZEDNEJ i chciałbym to teraz złączyć w jednego długiego stringa dla każdego ID sortując po kolumnie INDEX_WSPOL?

Czyli mam:

ID || WPSOLRZEDNE || INDEX_WSPOL
2 || x,y || 1
2 || x2,y2 ||2
....
2 || x90,y90 || 90

edytowany 3x, ostatnio: choracy69, 2019-05-14 17:31

Pozostało 580 znaków

2019-05-14 18:06
0

W postgres:

CREATE TABLE FOO (
  ID INT,
  WSPOLRZEDNE VARCHAR(20),
  INDEX_WSPOL INT
 );

 INSERT INTO FOO VALUES 
(2,'(X1,Y1)',1), 
(2,'(X2,Y2)',2), 
(2,'(X3,Y3)',3), 
(2,'(X4,Y4)',4), 
(2,'(X5,Y5)',5), 
(3,'(A1,B1)',5), 
(3,'(A2,B2)',4), 
(3,'(A3,B3)',3), 
(3,'(A4,B4)',2), 
(3,'(A5,B5)',1);

SELECT ID, POLACZONE FROM (
SELECT
  F.ID,
  STRING_AGG(F.WSPOLRZEDNE,'#') OVER (PARTITION BY F.ID ORDER BY F.INDEX_WSPOL RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) POLACZONE,
  ROW_NUMBER() OVER (PARTITION BY F.ID ORDER BY F.INDEX_WSPOL RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) RN
 FROM FOO F
) G WHERE RN=1;

Pozostało 580 znaków

2019-05-14 22:47
Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0