La operación única se puede lograr con un simple UPDATE
:
UPDATE tbl
SET one_year_survival = (survival OR survival_days >= 365);
Aconsejaría no usar mayúsculas y minúsculas, espacios en blanco y paréntesis en sus nombres. Si bien se permite entre comillas dobles, a menudo genera complicaciones y confusión. Considere el capítulo sobre identificadores y claves palabras en el manual .
¿Sabe que puede exportar los resultados de una consulta como CSV con COPY
?
Ejemplo:
COPY (SELECT *, (survival OR survival_days >= 365) AS one_year_survival FROM tbl)
TO '/path/to/file.csv';
Para empezar, no necesitaría la columna redundante de esta manera.
Respuesta adicional al comentario
Para evitar actualizaciones vacías:
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, solo agregaría columnas tan redundantes si tuviera una razón convincente. Normalmente no lo haría. Si se trata de rendimiento:¿conoce los índices en expresiones e índices parciales ?