L'operazione una tantum può essere ottenuta con un semplice UPDATE
:
UPDATE tbl
SET one_year_survival = (survival OR survival_days >= 365);
Consiglierei di non usare camel-case, white-space e parentesi nei tuoi nomi. Sebbene consentito tra virgolette doppie, spesso porta a complicazioni e confusione. Considera il capitolo su identificatori e chiave parole nel manuale .
Sei consapevole che puoi esportare i risultati di una query come CSV con COPY
?
Esempio:
COPY (SELECT *, (survival OR survival_days >= 365) AS one_year_survival FROM tbl)
TO '/path/to/file.csv';
Tanto per cominciare, non avresti bisogno della colonna ridondante.
Risposta aggiuntiva al commento
Per evitare aggiornamenti vuoti:
UPDATE tbl
SET "Dead after 1-yr" = (dead AND my_survival_col < 365)
,"Dead after 2-yrs" = (dead AND my_survival_col < 730)
....
WHERE "Dead after 1-yr" IS DISTINCT FROM (dead AND my_survival_col < 365)
OR "Dead after 2-yrs" IS DISTINCT FROM (dead AND my_survival_col < 730)
...
Personalmente, aggiungerei tali colonne ridondanti solo se avessi una ragione convincente. Normalmente non lo farei. Se si tratta di prestazioni:sei a conoscenza di indici su espressioni e indici parziali ?