前提・実現したいこと
PostgreSQLでaテーブルにあるデータを変換してbテーブルにINSERT
を行いたいです。
aテーブル
Create
1CREATE TABLE a 2( 3 ID INTEGER NOT NULL , 4 DATETIME TIMESTAMP NOT NULL , 5 NUM INTEGER 6) 7
id,datetime,num 10,2019-02-05 12:00:00,10 10,2019-02-06 12:00:00,5 10,2019-02-05 10:00:00,3 50,2019-02-07 03:00:00,30 50,2019-02-05 14:00:00,15
変換先bテーブル
Create
1CREATE TABLE b 2( 3 ID INTEGER NOT NULL , 4 DATE DATE NOT NULL , 5 NUM_00 INTEGER , 6 NUM_01 INTEGER , 7 NUM_02 INTEGER , 8 NUM_03 INTEGER , 9 NUM_04 INTEGER , 10 NUM_05 INTEGER , 11 NUM_06 INTEGER , 12 NUM_07 INTEGER , 13 NUM_08 INTEGER , 14 NUM_09 INTEGER , 15 NUM_10 INTEGER , 16 NUM_11 INTEGER , 17 NUM_12 INTEGER , 18 NUM_13 INTEGER , 19 NUM_14 INTEGER , 20 NUM_15 INTEGER , 21 NUM_16 INTEGER , 22 NUM_17 INTEGER , 23 NUM_18 INTEGER , 24 NUM_19 INTEGER , 25 NUM_20 INTEGER , 26 NUM_21 INTEGER , 27 NUM_22 INTEGER , 28 NUM_23 INTEGER 29)
id,date,num_00,num_01,num_02,num_03,num_04,num_05,num_06,num_07,num_08,num_09,num_10,num_11 ,num_12,num_13,num_14,num_15,num_16,num_17,num_18,num_19,num_20,num_21,num_22,num_23 10,2019-02-05,0,0,0,0,0,0,0,0,0,0,3,0,10,0,0,0,0,0,0,0,0,0,0,0 10,2019-02-06,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0 50,2019-02-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0 50,2019-02-07,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
このようにしてid
とdatetime
の日付が一致しているものを
一つのレコードにし、datetime
の時刻とnum
を
時間別のカラムに変換するSQLを作成しています。
INSERT
する際に上記のように変換することは可能なのでしょうか。
どうか、ご教授頂けないでしょうか。
試したこと
INSERT
を行ってから別SQLでUPDATE
を行って一つずつ入れて行こうと作業していたら
一つのSQLでINSERT
を行う際に変換するようにとの指示が出てそちらで対応しようとしています。
補足情報(FW/ツールのバージョンなど)
Windows10
Postgresql-11
pgAdmin 4 v3
回答3件
あなたの回答
tips
プレビュー