A operação única pode ser alcançada com um simples
UPDATE
:UPDATE tbl
SET one_year_survival = (survival OR survival_days >= 365);
Eu aconselharia a não usar camel-case, white-space e parênteses em seus nomes. Embora permitido entre aspas duplas, muitas vezes leva a complicações e confusão. Considere o capítulo sobre identificadores e chave palavras no manual .
Você sabe que pode exportar os resultados de uma consulta como CSV com
COPY
?Exemplo:
COPY (SELECT *, (survival OR survival_days >= 365) AS one_year_survival FROM tbl)
TO '/path/to/file.csv';
Você não precisaria da coluna redundante dessa maneira para começar.
Resposta adicional ao comentário
Para evitar atualizações vazias:
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)
...
Pessoalmente, eu só adicionaria essas colunas redundantes se tivesse um motivo convincente. Normalmente eu não faria. Se for sobre desempenho:você conhece os índices em expressões e índices parciais ?