Загрузка данных


SELECT
    CAST(EXTRACT(YEAR FROM io.date) AS integer) AS contribution_year,
    c.service_type AS contract_type,
    at.mnemonics,
    COUNT(DISTINCT io.id) AS incoming_order_count,
    COUNT(DISTINCT io.contract_id) AS contract_count,
    SUM(t.value) AS contributions_amount
FROM back_office.incoming_order io
JOIN back_office.incoming_order_operation ioo
    ON ioo.incoming_order_id = io.id
JOIN back_office."transaction" t
    ON t.operation_id = ioo.operation_id
JOIN back_office.account a
    ON a.id = t.credit_account_id
JOIN back_office.account_type at
    ON at.id = a.account_type_id
JOIN ourpension.contract c
    ON c.id = io.contract_id
WHERE io.payment_return IS NOT TRUE
  AND io.contract_id IS NOT NULL
  AND at.mnemonics IN ('ИПС_ФЛ', 'ПДС СВ')
GROUP BY
    CAST(EXTRACT(YEAR FROM io.date) AS integer),
    c.service_type,
    at.mnemonics
ORDER BY
    contribution_year DESC,
    contract_type,
    at.mnemonics;