ITPub博客

首页 > 数据库 > Oracle > 用WHERE子句替换HAVING子句

用WHERE子句替换HAVING子句

原创 Oracle 作者:luisedalian 时间:2014-01-15 09:45:11 0 删除 编辑

HAVING子句会在分组之后对分组形成的结果进行过滤。

这个过程需要聚合、排序,因此如果通过WHERE子句限制记录而省略HAVING子句,是可以提升性能的。

点击(此处)折叠或打开

  1. --使用HAVING
  2. SELECT deptno, SUM(sal) FROM emp GROUP BY deptno HAVING deptno = 20;


点击(此处)折叠或打开

  1. --使用WHERE替换HAVING, 看到执行的操作少了一步
  2. SELECT deptno, SUM(sal) FROM emp WHERE deptno = 20 GROUP BY deptno;


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

下一篇: 减少对表的查询
请登录后发表评论 登录
全部评论

注册时间:2012-02-06

  • 博文量
    1986
  • 访问量
    6040856