Oracle aggregate function performance
Use Oracle analytics:

SELECT distinct
  COUNT(userId) over (partition by date_range_start, date_range_end)
, AVG(age)      over (partition by date_range_start, date_range_end)
, STDDEV(age)   over (partition by date_range_start, date_range_end)
, MIN(age)      over (partition by date_range_start, date_range_end)
, MAX(age)      over (partition by date_range_start, date_range_end)
, date_range_start, date_range_end
FROM users
WHERE
(date_range_start &gt;= TO_DATE('01-Dec-2010')) AND (date_range_end &lt;= TO_DATE('30-Nov-2011')) 
/


It does the same but most of the times it is surprizingly faster.