我有一張像這樣的桌子:
| ID | 時間系列 | 價值 |
|---|---|---|
| 1 | 2020-09-25 00:00:00 | 100 |
| 1 | 2020-09-25 00:10:00 | 200 |
| 1 | 2020-09-25 00:20:00 | 300 |
| 1 | 2020-09-25 00:30:00 | 400 |
我想要一個 JSON 輸出為:
{
"ID": 1,
"time_serie": [
{
"position": 1,
"inQuantity": 100
},
{
"position": 2,
"inQuantity": 200
},
{
"position": 3,
"inQuantity": 300
},
{
"position": 4,
"inQuantity": 400
}
...
]
}
謝謝
uj5u.com熱心網友回復:
您可以混合使用 JSON 函式和 ROW_NUMBER() 視窗函式來生成位置,例如
SELECT *
FROM
(
SELECT JSON_BUILD_OBJECT('ID', id,
'time_serie',
JSON_AGG(
JSON_BUILD_OBJECT('position',id,'inQuantity',value)
)
)
FROM (SELECT *, ROW_NUMBER() OVER (PARTITION BY id ORDER BY time) AS rn FROM t) AS t
GROUP BY id
) AS j
Demo
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/415511.html
標籤:
