BEGIN READ ONLY;
SET LOCAL statement_timeout = '180s';
WITH reserve_accounts AS MATERIALIZED (
SELECT array_agg(a.id) AS ids
FROM back_office.account a
JOIN back_office.account_type at
ON at.id = a.account_type_id
WHERE at.mnemonics IN ('Р ОПС', 'Р ОПС ИД')
)
SELECT
'Резервный счёт в кредите' AS direction,
COUNT(*) AS transaction_count
FROM reserve_accounts r
JOIN back_office.transaction t
ON t.credit_account_id = ANY(r.ids)
UNION ALL
SELECT
'Резервный счёт в дебете' AS direction,
COUNT(*) AS transaction_count
FROM reserve_accounts r
JOIN back_office.transaction t
ON t.debit_account_id = ANY(r.ids);
ROLLBACK;