Jednorazową operację można wykonać za pomocą zwykłej UPDATE
:
UPDATE tbl
SET one_year_survival = (survival OR survival_days >= 365);
Radziłbym nie używać w swoich imionach wielbłąda, spacji i nawiasów. Chociaż dozwolone między podwójnymi cudzysłowami, często prowadzi do komplikacji i zamieszania. Rozważ rozdział o identyfikatorach i kluczach słowa w instrukcji .
Czy wiesz, że możesz wyeksportować wyniki zapytania? jako CSV z COPY
?
Przykład:
COPY (SELECT *, (survival OR survival_days >= 365) AS one_year_survival FROM tbl)
TO '/path/to/file.csv';
Na początku niepotrzebna kolumna nie byłaby potrzebna.
Dodatkowa odpowiedź na komentarz
Aby uniknąć pustych aktualizacji:
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)
...
Osobiście dodałbym takie nadmiarowe kolumny tylko wtedy, gdybym miał przekonujący powód. Normalnie bym nie. Jeśli chodzi o wydajność:czy wiesz o indeksach wyrażeń i indeksach częściowych ?