Oracle
 sql >> база данни >  >> RDS >> Oracle

Защо Oracle SQL не ни позволява да използваме псевдоними на колони в клаузи GROUP BY?

Това не е просто Oracle SQL, всъщност вярвам, че отговаря на стандарта ANSI SQL (въпреки че нямам препратка за това). Причината е, че клаузата SELECT се обработва логически след клаузата GROUP BY, така че в момента, в който GROUP BY е направено, псевдонимите все още не съществуват.

Може би този малко смешен пример помага да се изясни проблема и неяснотата, която 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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-06502:PL/SQL:числова или стойностна грешка:буферът за низ от знаци е твърде малък

  2. Как да създадете временна таблица в база данни на Oracle?

  3. Поправка:„главната прецизност на интервала е твърде малка“ в Oracle Database

  4. Използване на setDate в PreparedStatement

  5. Как да изберем и оптимизираме индекси на Oracle?