id, state, date
B: amount, userId, aId
В таблице B записей в отношении к одному id из A может быть сколько угодно
Стоит задача по userId просуммировать все записи из B, относящиеся к A по определенной date
Этим запросом я вытаскиваю сумму по каждой записи из A:
SELECT Coalesce(SUM(Coalesce("b"."amount", 0)), 0) :: FLOAT
FROM "a"
left join "b"
ON "b"."aId" = "a"."id"
WHERE "b"."userId" = '123'
AND "a"."date" BETWEEN '...' AND '...'
GROUP BY "a"."id»
Как можно сделать, чтобы он дальше просуммировал эту группу записей и на выходе было одно число?
Coalesce(SUM(Coalesce("b"."amount", 0)), 0) :: FLOAT Ну и ужас... Надеюсь, что amount — это, хотя бы, не деньги.
Обсуждают сегодня