Ich habe ein materialized view erstellt in dem ich eine Spalte aus der Summe mehrerer anderer Spalten berechnet habe.
coalesce(gbu.value,0) + coalesce(fh.value,0) + coalesce(ga.value,0) + coalesce(kn.value,0) +
coalesce(kr.value,0) + coalesce(sf.value,0) + coalesce(st.value,0) + coalesce(uh.value,0) +
coalesce(wk.value,0) + coalesce(wp.value,0) + coalesce(ww.value,0) + coalesce(fl.value,0) +
coalesce(pgbu.value,0) + coalesce(pfh.value,0) + coalesce(pga.value,0) + coalesce(pkn.value,0) +
coalesce(pkr.value,0) + coalesce(psf.value,0) + coalesce(pst.value,0) + coalesce(puh.value,0) +
coalesce(pwk.value,0) + coalesce(pwp.value,0)+ coalesce(pww.value,0) + coalesce(pfl.value,0) as result,
Nun möchte ich in dem selben view eine weitere Spalte anfügen, die sich auf diesen berechneten Wert (result) bezieht
also in etwa so
case when "result" > 8 then 5
when"result" > 4 then 4
when "result" > 2 then 3
when"result" > 1 then 2
when"result" > 0.1 then 1
else 0 end as indicator;
Problem ist das er “result” nicht findet da sie ja erst berechnet wird. Ich habe das gelöst indem ich den gesamten oberen Code unten mehrfach eingesetzt habe. Ich möchte fragen ob man das nicht eleganter lösen kann, indem man den wert vielleicht zwischenspeichert und neu nutzt?