SELECT p2.login, tr.timestamp::date, p2.partner_id, tr.currency,
SUM(tr.amount) FILTER(WHERE tr.type = 'deposit') AS deposit_amount,
SUM(tr.amount) FILTER(WHERE tr.type = 'payout') AS payout_amount,
SUM(tr.amount) FILTER(WHERE tr.type = 'deposit')-SUM(tr.amount) FILTER(WHERE tr.type = 'payout')
FROM transactions_paysys tr
LEFT JOIN player p1 on p1.login = tr.login
LEFT JOIN player p2 on p2.partner_id = p1.ref_id::integer
WHERE p1.ref_id IS NOT NULL
AND tr.status = 'success'
GROUP BY tr.timestamp::date, p2.partner_id, tr.currency, p2.login
ORDER BY timestamp;
да, офигенно, спасибо! Добавил еще алиас:
SELECT p2.login, tr.timestamp::date, p2.partner_id, tr.currency,
SUM(tr.amount) FILTER(WHERE tr.type = 'deposit') AS deposit_amount,
SUM(tr.amount) FILTER(WHERE tr.type = 'payout') AS payout_amount,
SUM(tr.amount) FILTER(WHERE tr.type = 'deposit') -
SUM(tr.amount) FILTER(WHERE tr.type = 'payout') as profit
FROM transactions_paysys tr
LEFT JOIN player p1 on p1.login = tr.login
LEFT JOIN player p2 on p2.partner_id = p1.ref_id::integer
WHERE p1.ref_id IS NOT NULL
AND tr.status = 'success'
GROUP BY tr.timestamp::date, p2.partner_id, tr.currency, p2.login
ORDER BY timestamp;