Seems reasonable. How big are the two tables? I guess you are asking because you having a performance problem?

I might be tempted to put the SUM in the view as an analytic and then just get the first row from each partition. Not saying for sure that would be a whole lot faster though, just a hunch.

Incidentally you have /*+ APPEND */ hint in the wrong place. It goes immediately after INSERT.