I have a very complex Oracle view based on other materialized views, regular views as well as some tables (I can\'t \"fast refresh\" it). Most of the time, existing records
Partition by date as in answer 3 (skaffman).
You could just do the refresh of a normal mv(table_refreshed below) and than use the exchange keyword i.e.
table_refreshed
ALTER TABLE all_partitions EXCHANGE PARTITION to_calculate WITH TABLE table_refreshed WITHOUT VALIDATION UPDATE GLOBAL INDEXES;