I am trying to display the total sale and number of customers on a particular month based on the age group. I am able to display the result as follows:

But my desired output is like this:
Age Group Number of Customers Total Sales
----------------------------------------------------
Teenager 57 48313.26
Adult 277 198512.89
Senior Citizen 50 44770
I already tried several method like inline select and union all/union but fail to produce the desired output. My coding for the result is below:
SELECT CASE
WHEN (EXTRACT(Year From (SYSDATE - dob) YEAR TO MONTH) > 50 ) THEN 'Senior Citizen'
WHEN (EXTRACT(Year From (SYSDATE - dob) YEAR TO MONTH) > 25 ) THEN 'Adult'
ELSE 'Teenager'
END AS "AGE GROUP",
COUNT(*) AS "NUMBER OF CUSTOMER"
FROM customer
GROUP BY CASE
WHEN (EXTRACT(Year From (SYSDATE - dob) YEAR TO MONTH) > 50 ) THEN 'Senior Citizen'
WHEN (EXTRACT(Year From (SYSDATE - dob) YEAR TO MONTH) > 25 ) THEN 'Adult'
ELSE 'Teenager'
END
UNION ALL
SELECT CASE
WHEN (EXTRACT(Year From (SYSDATE - dob) YEAR TO MONTH) > 50 ) THEN 'Senior Citizen'
WHEN (EXTRACT(Year From (SYSDATE - dob) YEAR TO MONTH) > 25 ) THEN 'Adult'
ELSE 'Teenager'
END AS "AGE GROUP",
SUM(final_total) AS "TOTAL SALES"
FROM customer c, orders o
WHERE c.cust_id = o.cust_id
AND EXTRACT(YEAR FROM order_datetime) = &check_year
GROUP BY CASE
WHEN (EXTRACT(Year From (SYSDATE - dob) YEAR TO MONTH) > 50 ) THEN 'Senior Citizen'
WHEN (EXTRACT(Year From (SYSDATE - dob) YEAR TO MONTH) > 25 ) THEN 'Adult'
ELSE 'Teenager'
END;
EDIT :
Thanks to Mureinik and Thorsten Kettner helps, I finally get the desired output and know that I didn't look enough documentation haha. My try of coding:
SELECT CASE
WHEN (EXTRACT(Year From (SYSDATE - dob) YEAR TO MONTH) > 50 ) THEN 'Senior Citizen'
WHEN (EXTRACT(Year From (SYSDATE - dob) YEAR TO MONTH) > 25 ) THEN 'Adult'
ELSE 'Teenager'
END AS "AGE GROUP",
COUNT(DISTINCT c.cust_id) AS "NUMBER OF CUSTOMER",
SUM(final_total) AS "TOTAL SALES"
FROM customer c, orders o
WHERE c.cust_id = o.cust_id
AND EXTRACT(YEAR FROM order_datetime) = &check_year
GROUP BY CASE
WHEN (EXTRACT(Year From (SYSDATE - dob) YEAR TO MONTH) > 50 ) THEN 'Senior Citizen'
WHEN (EXTRACT(Year From (SYSDATE - dob) YEAR TO MONTH) > 25 ) THEN 'Adult'
ELSE 'Teenager'
END;
I feel so dumb that I never think of putting DISTINCT inside the COUNT(). But still, Mureinik code is also working for me!