[英]insert statement in postgresql
我有一張有8條記錄的表。
我有12月17日的4條記錄,1月18日相同的4條記錄(僅Yearmon更改)
我也希望2月18日的記錄相同。 所有列的值都應該相同,只有yearmon必須更改為Feb-18。
如果我的記錄少於5條,我可以寫一條插入語句。 還有其他方法可以編寫查詢以獲取所需的輸出嗎?
income score_1 score_2 rank yearmon
800 77 90 10 Dec-17
900 72 44 99 Dec-17
700 62 44 06 Dec-17
600 55 23 06 Dec-17
800 77 90 10 Jan-18
900 72 44 99 Jan-18
700 62 44 06 Jan-18
600 55 23 06 Jan-18
輸出看起來像
income score_1 score_2 rank yearmon
800 77 90 10 Dec-17
900 72 44 99 Dec-17
700 62 44 06 Dec-17
600 55 23 06 Dec-17
800 77 90 10 Jan-18
900 72 44 99 Jan-18
700 62 44 06 Jan-18
600 55 23 06 Jan-18
800 77 90 10 Feb-18
900 72 44 99 Feb-18
700 62 44 06 Feb-18
600 55 23 06 Feb-18
這回答了原始問題。
最簡單的方法是union all
:
select income, score_1, score_2, rank, yearmon
from t
union all
select income, score_1, score_2, rank, 'Feb-2018'
from t;
如果要更改表,請insert
:
insert into t (income, score_1, score_2, rank, yearmon)
select income, score_1, score_2, rank, 'Feb-2018'
from t;
首先插入收入,得分_1,得分_2,RANK組合的所有唯一值。 然后將yearmon更新為Feb-18
INSERT INTO T
SELECT DISTINCT income, score_1, score_2, RANK
FROM T;
UPDATE T
SET yearmon = 'Feb-18'
WHERE yearmon IS NULL;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.