質問編集履歴
1
リンクの修正、テーブルの作成などの一連のSQLの流れを追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -92,11 +92,49 @@
|
|
92
92
|
|
93
93
|
- 上記のjsonを、一度text型のカラムに格納し、再度それに対してSQLを投げることで、下記のような結果を取得したいのですが、どのようなSQLを書けば取得できるでしょうか? ご教示頂きたいです。
|
94
94
|
|
95
|
-
- (こちらを参考に、postgresqlのjsonサポートを使ってみましたが、知識が足りず、思うような結果を取得できませんでした。
|
96
|
-
|
97
|
-
https://qiita.com/kumazo/items/483f47360f8b61a9fbb9
|
95
|
+
- ([こちら](https://qiita.com/kumazo/items/483f47360f8b61a9fbb9)を参考に、postgresqlのjsonサポートを使ってみましたが、知識が足りず、思うような結果を取得できませんでした。)
|
98
96
|
|
99
97
|
```
|
98
|
+
|
99
|
+
# json用の一時テーブルを作成
|
100
|
+
|
101
|
+
CREATE TEMP TABLE json_text_table(
|
102
|
+
|
103
|
+
json_text text
|
104
|
+
|
105
|
+
)
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
# 上記のjsonを突っ込む
|
110
|
+
|
111
|
+
INSERT INTO json_text_table(json_text) VALUES (#{JSON.generate(上記のjson文字列)})
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
# 仕訳用の一時テーブルを作成
|
116
|
+
|
117
|
+
CREATE TEMP TABLE siwake(
|
118
|
+
|
119
|
+
group integer,
|
120
|
+
|
121
|
+
day date,
|
122
|
+
|
123
|
+
is_dc numeric,
|
124
|
+
|
125
|
+
cd character varying,
|
126
|
+
|
127
|
+
kingaku numeric
|
128
|
+
|
129
|
+
SQL
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
# 上記で作成したsiwakeテーブルに、jsonをSQLで分解して1レコードずつ突っ込みたい
|
134
|
+
|
135
|
+
# ここのSQLをどのようにすればいいかがわかりません
|
136
|
+
|
137
|
+
INSERT INTO siwake(group,day,is_dc,cd,kingaku)
|
100
138
|
|
101
139
|
SELECT
|
102
140
|
|
@@ -118,7 +156,7 @@
|
|
118
156
|
|
119
157
|
FROM
|
120
158
|
|
121
|
-
json_text_table #上記のjson文字列を突っ込んだtext型のテーブルに対してクエリをなげ、下記の結果を
|
159
|
+
json_text_table #上記のjson文字列を突っ込んだtext型のテーブルに対してクエリをなげ、下記の結果を入れたい
|
122
160
|
|
123
161
|
) s
|
124
162
|
|
@@ -126,7 +164,7 @@
|
|
126
164
|
|
127
165
|
↓
|
128
166
|
|
129
|
-
|
167
|
+
# 入れたいデータ
|
130
168
|
|
131
169
|
group, day, is_dc, cd, kingaku
|
132
170
|
|
@@ -140,8 +178,6 @@
|
|
140
178
|
|
141
179
|
2,2017/09/01,0,111,200
|
142
180
|
|
143
|
-
|
144
|
-
|
145
181
|
```
|
146
182
|
|
147
183
|
|