Добавление столбца в таблицу и добавление данных сразу в столбец в PostgreSQL

Я пытаюсь создать новый столбец в существующей таблице и использую оператор выбора для деления, чтобы создать данные, которые я хочу вставить в мой новый столбец. Некоторые из выписанных мной утверждений будут работать как отдельные запросы, но я не смог объединить эти операторы в один запрос.

Я все еще изучаю SQL и использую его с mySQL и PostgreSQL. В прошлом месяце я посещал занятия по SQL, и теперь я пытаюсь делать свои собственные проекты, чтобы сохранить свои навыки.

Я работаю с результатами выборов 2012 года в MN, чтобы использовать их в своих таблицах, чтобы понять данные, с которыми я работаю.

Я смог изменить свою таблицу и добавить новый столбец с этими утверждениями, используя их самостоятельно.

ALTER TABLE mn2012ct_geom2 ADD COLUMN obama_pct decimal(10,2)
ALTER TABLE mn2012ct_geom2 ADD COLUMN romney_pct decimal(10,2)

Я смог использовать это предложение выбора для получения информации, которую я хочу, в моем терминальном приложении. То, что я пытаюсь сделать здесь, - это создать десятичное число из числа голосов, которые кандидат получил за общее количество поданных голосов.

SELECT CAST (obama AS DECIMAL) / CAST (uspres_total AS DECIMAL) 
AS obama_pct FROM mn2012ct_geom2

SELECT CAST (romney AS DECIMAL) / CAST (uspres_total AS DECIMAL) 
AS obama_pct FROM mn2012ct_geom2

Теперь я хочу добавить эту информацию в новый столбец, который я создал, с помощью оператора Alter table, как у меня выше, или с оператором вставки, если я создаю столбец перед этим запросом.

Я пробовал комбинированный запрос, как это:

ALTER TABLE mn2012ct_geom2 ADD COLUMN obama_pct decimal(10,2) AS
(SELECT CAST (obama AS DECIMAL (10,2)) / CAST (uspres_total AS DECIMAL (10,2)) 
AS obama_pct FROM mn2012ct_geom2);

Или с помощью команды «Вставить», такой как эта строка, вместо оператора alter table

INSERT INTO mn2012ct_geom2 (romney_pct) AS
(SELECT CAST (romney AS DECIMAL (10,2)) / CAST (uspres_total AS DECIMAL (10,2)) 
AS romney_pct FROM mn2012ct_geom2);

Когда я пытаюсь это сделать, появляется ошибка, подобная этой:

ERROR:  syntax error at or near "AS"
LINE 1: ...mn2012ct_geom2 ADD COLUMN obama_pct decimal(10,2) AS (SELECT...

Я думал, что такой тип таблицы Alter и добавления столбца или вставки будет работать, так как этот тип формата работал, когда я создавал новую таблицу с использованием того же оператора select.

CREATE TABLE obama_pct AS (SELECT CAST (obama AS DECIMAL (10,2)) / CAST (uspres_total     
AS DECIMAL (10,2)) AS obama_pct FROM mn2012ct_geom2);   

Любую помощь для вас может оказать, я был бы очень признателен Я пытался зайти в Google и поискать здесь на stackoverflow, чтобы найти ответ, но ни один из того, что я нашел, кажется, не совсем соответствует тому, что я делаю, кажется.

Ответы на вопрос(2)

Ваш ответ на вопрос