Recently, great attention has been paid to distributed stream processing systems (DSPSs), where a number of distributed source nodes generate data streams and queries are continuously executed over those streams. An emerging challenge in large-scale DSPSs is to efficiently process multiple continuous aggregate queries. To process a continuous aggregate query, each source node periodically sends partial aggregates computed over its local stream to the sink node, where the final results are computed. Since sending partial aggregates for each query separately can lead to significant communication overhead, lowering the overall performance and scalability, multiple aggregate queries must be processed collectively, rather than separately. In this paper, we propose an efficient method for collectively processing multiple continuous aggregate queries, which minimizes the total communication costs from source nodes to the sink node. The proposed method finds the smallest set of partial aggregates that each source node needs to send to the sink node to correctly answer all the queries, and thus minimizes the number of message transmissions. Furthermore, since the proposed method operates on-the-fly, it can efficiently handle registration or deregistration of queries at any time. Through theoretical analysis and experiments, we show that the proposed method outperforms the existing ones in terms of communication costs.