sql >> Base de Datos >  >> RDS >> Oracle

¿Por qué Oracle SQL no nos permite usar alias de columna en las cláusulas GROUP BY?

No es solo Oracle SQL, de hecho, creo que cumple con el estándar ANSI SQL (aunque no tengo una referencia para eso). El motivo es que la cláusula SELECT se procesa lógicamente después la cláusula GROUP BY, por lo que en el momento en que se realiza GROUP BY, los alias aún no existen.

Quizás este ejemplo un tanto ridículo ayude a aclarar el problema y la ambigüedad que evita SQL:

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