Добавление столбца в таблицу и добавление данных сразу в столбец в 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, чтобы найти ответ, но ни один из того, что я нашел, кажется, не совсем соответствует тому, что я делаю, кажется.