我已经为此苦苦挣扎了很长时间。我有下表...
| 邮政编码 | 家庭 | 怀特电缆 | 怀特电缆最快下降 | B4RN | B4RN 降速最快 |
|---|---|---|---|---|---|
| X24 888 | 34 | 1 | 108.2 | 0 | 0 |
| BT36 7JU | 17 | 0 | 0 | 1 | 274.23 |
我想要做的是像下面这样输出JSON(这里是一行)
{'postcode':"X24 888",
'households':34,
'providers':[{'name':"wight cable",
'fastest_down':108.2,
'present':1},
{'name':"B4RN",
'fastest_down':0,
'present':0}']
}
实际上有大约 50 列这样的列。我可以使用类似的命令获取列表SHOW COLUMNS LIKE '%fastest down%' IN TABLE TABLE1,但我正在努力循环遍历表以从这些表中捕获数据,以及特定的嵌套 json 结构。
这是我到目前为止所得到的。也许此时只需进行一些小的编辑即可获得我需要的内容。
create or replace function custom_object_assign(o1 VARIANT, o2 VARIANT)
returns VARIANT
language javascript
as 'return Object.assign(O1, O2);';
with t1 AS
(
SELECT OBJECT_CONSTRUCT(
'_id', h."ID",
'providers', array_agg(object_construct(
'wight cable', h."wight cable",
'wight cable fastest down', h."wight cable fastest down")
)) AS dc
FROM TABLE1 h
group by "ID"
),
t2 AS
(SELECT OBJECT_CONSTRUCT(
'_id', h."ID",
'rmpostcode', "rmpostcode"
) AS rs
FROM TABLE1 h
)
SELECT custom_object_assign(dc, rs)
FROM t1
JOIN t2
ON rs:"_id" = dc:"_id"
LIMIT 10;
这是返回的东西,如
{ "_id": "786516", "providers": [ { "wight cable": 0 } ], "rmpostcode": "LL65 1SJ" }
还不是我需要的!