> Notice that setting a 'group' element will eliminate other fields from being retrieved, which is not exactly desirable.
If we aggregate a table, say get max score of a player, we also want the player name and other fields from that table. Therefore we add the field names and the aggregate function in the select part of the query, and add the field that uses the aggregate function to the group by clause. Strict engines would cut down non-aggregated fields, that's why you need to add those to the group by clause. The behavior of your aggregate function isn't touched by that.