Yes, you can put the aggregate function *around* the CASE statement, taking advantage of the fact that a 'false' case will return null in the absence of an 'else' and hence sum only the rows that match the condition, eg
SQL> create table t ( x varchar2(1), y int );
Table created.
SQL>
SQL> insert into t values ('a',10);
1 row created.
SQL> insert into t values ('a',11);
1 row created.
SQL> insert into t values ('a',12);
1 row created.
SQL> insert into t values ('b',10);
1 row created.
SQL> insert into t values ('b',20);
1 row created.
SQL>
SQL> select
2 sum(case when x = 'a' then y end) sum_of_a,
3 sum(y) total
4 from t;
SUM_OF_A TOTAL
---------- ----------
33 63