zoukankan      html  css  js  c++  java
  • oracle 分组函数执行分析

    先上例了:

    select job as "JOB1", avg(sal) as "avg sal" from scott.emp
        group by  "JOB"
        having avg(sal) > 1500 and "JOB1" = 'MANAGER'
        order by "avg sal"
    ;
    -- 执行报错,ORA-00904:"JOB1":标识符无效
    
    
    select job as "JOB1", avg(sal) as avg_sal from scott.emp
        group by job
        having avg(sal) > 1500 and job = 'MANAGER'and DEPTNO=20
        order by  2;
    -- 执行报错,ORA--00979:不是GROUP BY表达式
    
    

    oracle执行顺序:先过滤一般条件(where), 再进行分组(group),然后对分组执行组函数,同时进行组函数过滤(having),最后对得到的数据排序显示。
    注意:

    • where 分组前过滤、having是分组后过滤;
    • having通过过滤分组函数结果来筛选内容;
    • having也不可以接分组函数的别名;
    • having中的条件必须是group by的表达式,即在分组中出现过;
    • having和group by都不可以接列的别名
    • having是对group分组后的内容进行过滤,group不能接列别名、having也不能接列别名
  • 相关阅读:
    gulp模块编译
    微擎数据库表-T
    微信小程序自动识别姓名电话地址
    PHPBase64格式编码图片
    HTML中Data的数据类型
    EPP状态码
    WePay-T
    HTML-T
    PHPNamespace命名空间
    jQuery:jQuery简介
  • 原文地址:https://www.cnblogs.com/hyang0/p/10609158.html
Copyright © 2011-2022 走看看