Try another rule of thumb: the network is slow. Moving more data from server to client than you need to is rarely a good idea. First guess-- albeit not the last word-- is to use the features built into the database to crunch the data.
I will repeat myself, but I fear I might as well talk to the walls: it all depends. Measure, and you will know. Don't assume the network is slow -- and that hence you should overload your database server as much as possible. Slowing everyone else down, so your query gets done "at the server" may not the best solution.
Measure. Don't assume.
Measure. Don't assume.
And once you have implemented a solution because it's the best today, measure the next day again and the day after, and keep repeating it, because circumstances change.