Jednorázovou operaci lze provést jednoduchým UPDATE
:
UPDATE tbl
SET one_year_survival = (survival OR survival_days >= 365);
Doporučuji nepoužívat ve jménech velká písmena, mezery a závorky. I když je to povoleno mezi dvojitými uvozovkami, často to vede ke komplikacím a zmatkům. Zvažte kapitolu o identifikátorech a klíčích slova v příručce .
Jste si vědomi toho, že můžete exportovat výsledky dotazu? jako CSV s COPY
?
Příklad:
COPY (SELECT *, (survival OR survival_days >= 365) AS one_year_survival FROM tbl)
TO '/path/to/file.csv';
Tímto způsobem byste pro začátek nepotřebovali redundantní sloupec.
Další odpověď na komentář
Chcete-li se vyhnout prázdným aktualizacím:
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)
...
Osobně bych takové nadbytečné sloupečky přidal jen v případě, že bych měl pádný důvod. Normálně bych ne. Pokud jde o výkon:víte o indexech výrazů a částečných indexů ?