To nie jest tylko Oracle SQL, w rzeczywistości wierzę, że jest zgodny ze standardem ANSI SQL (chociaż nie mam do tego odniesienia). Powodem jest to, że klauzula SELECT jest logicznie przetwarzana po klauzula GROUP BY, więc w momencie wykonania GROUP BY aliasy jeszcze nie istnieją.
Być może ten nieco śmieszny przykład pomaga wyjaśnić problem i niejednoznaczność, której SQL unika:
SQL> select job as sal, sum(sal) as job
2 from scott.emp
3 group by job;
SAL JOB
--------- ----------
ANALYST 6000
CLERK 4150
MANAGER 8275
PRESIDENT 5000
SALESMAN 5600