ITPub博客

首页 > 数据库 > Oracle > 23c 新特性之基于别名的GROUP BY

23c 新特性之基于别名的GROUP BY

原创 Oracle 作者:sjw1933 时间:2024-01-19 14:58:15 0 删除 编辑

描述                                            

基于别名的GROUP BY 的介绍

从 Oracle Database 23c 开始, Oracle 数据库支持基于别名的 GROUP BY 操作,相较于之前的数据库版本经常遇到在 GROUP BY  后面不能跟字段别名的情况,如果是一个比较复杂的表达式,在 GROUP BY  后面输入,不太方便,很多时候,认为 ORDER BY  后面都可以跟字段别名,或字段顺序号,那 GROUP BY  后面也可以,但是实际上是不支持的。因此在 23c 推出以基于表达式的别名或者它在  SELECT  列表中的位置指定  GROUP BY  和  HAVING  操作,从而简化了 SQL 写法。

基于别名的GROUP BY 测试

创建测试数据

SQL> create table employees(department_id int, salary number(10));
SQL> insert into employees values (1,1000);
SQL> insert into employees values (2,2000);
SQL> insert into employees values (3,3000);
SQL> insert into employees values (4,4000);


 


环境测试

SQL> select banner from v$version;
 
BANNER
--------------------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
 
SQL> select department_id deptid ,sum(salary) from employees group by deptid having deptid > 3;
select department_id deptid ,sum(salary) from employees group by deptid having deptid > 3
                                                                    *
ERROR at line 1:
ORA-00904: "DEPTID": invalid identifier
 
 
SQL>

 

这里报错了,在GROUP BY  后面需要实际的字段名

环境测试

SQL> select BANNER from  v$version;
 
BANNER
--------------------------------------------------------------------------------
Oracle Database 23c Free, Release 23.0.0.0.0 - Developer-Release
 
SQL> select department_id deptid,sum(salary)
  2     from employees
  3    group by deptid having deptid > 3;


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23825935/viewspace-3004463/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
11年数据库行业经验,Oracle ACE、PG ACE、OCM、IBM Certified DBA、MySQL OCP、PolarDB技术专家、KCP、PCTP、PCSD、达梦师资认证、PolarDB开源社区技术顾问、ITPUB认证专家、某高校外聘教师

注册时间:2019-05-05

  • 博文量
    295
  • 访问量
    300808