x | f01 | a | ||||
x | f02 | b | ||||
x | f03 | c | ||||
y | f01 | a | ||||
y | f02 | b | ||||
z | f01 | a | ||||
z | f02 | b | ||||
z | f03 | c | ||||
z | f04 | d | ||||
z | f05 | e |
miało zamienić się w coś takiego:
id | f01 | f02 | f03 | f04 | f05 |
x | a | b | c | ||
y | a | b | |||
z | a | b | c | d | e |
Generalnie rzecz niby prosta, ale dość nienaturalna dla tabel w bazce . W realnym przykładzie miałem tak de facto 20 kolumn, co wiązało by się z wykonaniem 20 JOIN-ów, na tabelach, które posiadać będą olbrzymią ilość danych.
W postgresie na szczęście znalazłem funkcję: crosstab, która umożliwia szybkie (?) wykonanie zapytania krzyżowego (typu PIVOT) i pięknie realizuje to, o co mi chodzi.
Zastanawiam się tylko jak jest ona zaimplementowana, i jaka jest jej wydajność, czy poradzi sobie z zakładaną dość dużą ilością danych? Ktoś coś wie na ten temat?
Brak komentarzy:
Prześlij komentarz