Łaczenie rekordów które jedno z pól mają takie samo.

0

Witam,
Od dłuższego czasu męczy mnie ten problem i pozwolę sobie zapytać czy da się to wykonać bez większego nakładu programistycznego.
Baza danych to postgresql.
Przykładowa tabela zawierająca pomiary ciśnienia:
Imię SP DP
Tomek 120 80
Zenek 150 93
Tomek 125 78
Tomek 144 96
Zenek 120 88

Chcę uzyskać informacje o wszystkich pomiarach w bazie dla każdego Imienia w jednym wierszu. Osoby które mają obrabiać te dane wymagają takiego zapisu. Wynikowa tabela:

Imię SP1 DP1 SP2 DP2 SP3 DP3
Tomek 120 80 125 78 144 96
Zenek 150 93 120 88 null null

Czy jest na to jakiś przepis?

Ewentualnie równie skutecznie pomogła by mi podpowiedź jak ponumerować (wstawić kolumnę z numerami kolejnymi - 1,2,3..) pomiary dla poszczególnych Imion w wypełnionej tabeli.
Wynik:

Imię SP DP ID
Tomek 120 80 1
Zenek 150 93 1
Tomek 125 78 2
Tomek 144 96 3
Zenek 120 88 2

Pozdrawiam

1

row_number:

select
    *
   ,row_number() over (partition by imię order by sp) as numer
from
    tabela
0
Panczo napisał(a):

row_number:

select
    *
   ,row_number() over (partition by imię order by sp) as numer
from
    tabela

Super :)
Dzięki Panczo.
Kilka selectów i będę miął to czego potrzebuję. :) ( o ile nie napotkam kolejnego zonka :P )

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