Postgres: Is migrating old records to separate table and creating new aggregated records a good strategy to improve search speed?
it's better to use partitioning, e.g. one table per month. You can then truncate archive tables which is an instant operation which frees disk space, or move them to a tablespace on a cheaper device and/or replace them with an aggregate row in an aggregates table. The table seen by your app will usually be a view of the union of the monthly tables. You need careful index design though.

You could also calculate a rolling (cumulative) sum in real time with a trigger.
On the other hand doing deletes and updates on the same table will not reduce the on-disk size of your db and may impact performance. But if that is an issue depends on the specifics: writes/selects/updates/sec, row size, drive hardware, indexing, memory etc. You don't mention any specifics.