我有以下查詢:
select
json_build_object('id', i.id, 'task_id', i.task_id, 'time_spent', i.summary)
from
intervals I
where
extract(month from "created_at") = 10
and extract(year from "created_at") = 2021
group by
i.id, i.task_id
order by i.task_id
這給出了以下輸出:
json_build_object {“id”:53,“task_id”:1,“time_spent”:“3373475”} {“id”:40,“task_id”:1,“time_spent”:“3269108”} {“id”:60,“task_id”:2,“time_spent”:“2904084”} {“id”:45,“task_id”:4,“time_spent”:“1994341”} {“id”:38,“task_id”:5,“time_spent”:“1933766”} {“id”:62,“task_id”:5,“time_spent”:“2395378”} {“id”:44,“task_id”:6,“time_spent”:“3304280”} {“id”:58,“task_id”:6,“time_spent”:“3222501”} {“id”:48,“task_id”:6,“time_spent”:“1990195”} {“id”:55,“task_id”:7,“time_spent”:“1984300”}
如何添加time_spent每個任務的小計?
我想要一個這樣的物件陣列結構:
{
"total": 3968600,
"details:" [
{"id" : 55, "task_id" : 7, "time_spent" : "1984300"},
{"id" : 55, "task_id" : 7, "time_spent" : "1984300"}
]
}
我怎樣才能實作它?謝謝!
uj5u.com熱心網友回復:
您可以嘗試以下修改,根據task_id和 使用對資料進行分組json_agg并json_build_object生成所需的架構。
select
json_build_object(
'total', SUM(i.summary),
'details',json_agg(
json_build_object(
'id', i.id,
'task_id', i.task_id,
'time_spent', i.summary
)
)
) as result
from
intervals I
where
extract(month from "created_at") = 10
and extract(year from "created_at") = 2021
group by
i.task_id
order by i.task_id
在此處在線查看作業演示小提琴
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/389913.html
標籤:sql PostgreSQL的 小计
上一篇:根據不同條件過濾一組結果
