Еднократната операция може да бъде постигната с обикновен UPDATE
:
UPDATE tbl
SET one_year_survival = (survival OR survival_days >= 365);
Бих те посъветвал да не използваш главни букви, бели интервали и скоби в имената си. Въпреки че е разрешено между двойни кавички, това често води до усложнения и объркване. Обърнете внимание на главата за идентификатори и ключ думи в ръководството .
Знаете ли, че можете да експортирате резултатите от заявка като CSV с COPY
?
Пример:
COPY (SELECT *, (survival OR survival_days >= 365) AS one_year_survival FROM tbl)
TO '/path/to/file.csv';
Като начало няма да имате нужда от излишната колона по този начин.
Допълнителен отговор към коментар
За да избегнете празни актуализации:
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)
...
Лично аз бих добавил такива излишни колони само ако имах убедителна причина. Обикновено не бих го направил. Ако става дума за производителност:знаете ли за индекси на изрази и частични индекси ?