SuperX

KontaktMail für InfosSuchenLogin

Zeilen zu Spalten

Mit der array_agg Funktion kann man mehrere Zeilen zu einer zusammenfassen. Das folgende Beispiel gruppiert nach Matrikelnr., Abschluss und Studiengang-Nr, so daß alle Fächer nach Fachnummer sortiert in einem Array stehen:

select S.matrikel_nr,S.studiengang_nr,D.abschluss_str, array_agg(D.stg_str) as faecher
into temp tmp_1
from
sos_stg_aggr S, dim_studiengang D
where S.tid_stg=D.tid
and S.sem_rueck_beur_ein=20142
and S.stichtag=1
group by 1,2,3 ,fach_nr
order by 1,2 ,3,fach_nr;

Man kann dieses Array dann wieder ausgeben

  • als eigene Spalte pro Array Element, also z.B.
select matrikel_nr,studiengang_nr,abschluss_str, faecher[1],faecher[2]
from tmp_1;
  • oder als eine Spalte mit einem langen String und Trennzeichen, mit der Funktion array_to_string(anyarray, text text) , also z.B.
select matrikel_nr,studiengang_nr,abschluss_str, array_to_string(faecher, ',','leer')
from tmp_1;

Das letzte Argument ist optional und ersetzt NULLs durch einen String.