나는 두 개의 테이블이 : users
필드를 user_id
하고 name
, 그리고 transactions
필드 transaction_id
, user_id
, amount
두 개의 다른 관련이없는 분야.
이제 user_id별로 이름과 금액의 합계를 나열하는 다음 쿼리가 있습니다.
select users.*, SUM(transactions.anount)
from users,transactions
where users.user_id = transaction.user_id
group by users.user_id
이제 JSON 형식이되기를 원합니다. 그래서 다음과 같습니다.
[{user_id: 1, name: foo, amount: 13},{user_id: 2, name: bar, amount:-5}]
어떻게 할 수 있습니까? json_object_agg
및으로 가정 하고 json_agg
있지만 작업 할 수 없습니다.
기본 쿼리를 파생 테이블로 래핑 한 다음 해당 결과를 JSON으로 집계 할 수 있습니다.
select json_agg(to_jsonb(t))
from (
select u.user_id, u.name, sum(t.amount) as amount
from users u
join transactions t on t.user_id = u.user_id
group by u.user_id
) t
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다