1

Temat: Agregowanie stringów

Witam
Posiadam ciekawą sytuację... po stworzeniu widoku pomocniczego (który korzysta z ok. 17 innych pomocniczych widoków) niestety dane, które chciałbym, by były w jednym wierszu, mieszczą się w innym.

ID dane1 dane2 dane3
1 null tekst2 null
1 tekst1 null null
1 null null tekst3

Nigdy nie zajdzie sytuacja, by dla jednego id w tej samej kolumnie wystąpiły dane.
Jaka jest możliwość zagregowania stringów do siebie, by otrzymać wynik:

ID dane1 dane2 dane3
1 tekst1 tekst2 tekst3

Pozdrawiam

2

Odp: Agregowanie stringów

W zależności od danych można spróbować wykonać pseudo pivota na tabelce.

Dla przykładu

merlin=> \d t2
      Table "public.t2"
 Column |  Type   | Modifiers 
--------+---------+-----------
 id     | integer | 
 dane1  | text    | 
 dane2  | text    | 
 dane3  | text    | 

merlin=> select  * from t2;
 id | dane1 | dane2 | dane3 
----+-------+-------+-------
  1 |       |       | dane2
  1 | dane  |       | 
  1 |       | dane1 | 
(3 rows)


merlin=> select id, max(dane1),max(dane2), max(dane3) from t2 group by id;
 id | max  |  max  |  max  
----+------+-------+-------
  1 | dane | dane1 | dane2

Ale to podejście bardziej teoretyczne smile
Trzeba by popatrzeć na dane jakie masz w bazie i się zastanowić na materializowaniem widoków lub klepnięcia jakiś agregatów ;]

Pozdrawiam
Pawel Socha