zoukankan      html  css  js  c++  java
  • 在oracle中使用having关键字来限制你的分组结果

    前面我们介绍了,使用oracle的聚合函数和group by关键字来对结果集合进行分组,这时就有了一个新的问题,例如,我们针对聚合函数那一列需要找到满足条件的那些分组结果。我们可以使用where子句吗?不行,我们需要的是使用having关键字。

    例如我们需要找出那些平均工资在$2000以上的部门。使用having关键字的写法是:

    Select deptno,avg(sal) avg_sal

    From emp

    Group by deptno

    Having avg(sal) > 2000;

    这样就可求出正确的结果

    如果你使用的是

    Select deptno,avg(sal) avg_sal

    From emp

    Group by deptno

    where avg(sal) > 2000;

    将会出现ORA-00934的错误。

    关于oraclehaving 关键字有一点要说明就是不可以是在having 使用聚合函数的别名,例如

    Select deptno,avg(sal) avg_sal

    From emp

    Group by deptno

    Having avg_sal > 2000;

    将会出现:ORA-00904: “AVG_SAL”: 无效的标识符的错误。

    当然having关键词只能用在处理聚合函数的结果,不可以用在普通列中。

    前面给出的例子的结果:

    SQL> Select deptno,avg(sal) avg_sal

    2 From emp

    3 Group by deptno

    4 Having avg(sal) > 2000;

    DEPTNO AVG_SAL

    ———- ———-

    10 2916.66667

    20 2235

  • 相关阅读:
    PDF 中的对象
    关于注释
    显示简单图形
    TColor 与 RGB 的转换函数
    关于运算符
    10 进制转 2 进制、16 进制
    Pascal 语言中的关键字及保留字
    语言字符集
    Async Java HTTP client
    老梁刨楚汉
  • 原文地址:https://www.cnblogs.com/lzhdim/p/1361395.html
Copyright © 2011-2022 走看看