zoukankan      html  css  js  c++  java
  • having列,不是group by的列,也不是聚合函数

    测试内容:having用法测试,写在where后面的条件加在having后面去

    结果:clickhouse上面可以执行,oracle运行报错不是GROUP BY 表达式

    PS:数据库系统工程师的题库里面有这个用法,因颠覆了我的认知,所以测试下

    第1次测试
    SELECT "版本",COUNT(1),MAX("企业板块") from tableA
    WHERE "企业板块"='金融板块'
    group by "版本"
    确实等价于
    SELECT "版本",COUNT(1),MAX("企业板块") from tableB
    group by "版本"
    having "企业板块"='金融板块'
    不过过滤写在where后面性能更加好

    第2次测试
    DROP table cs_thz_2021102801;
    create table cs_thz_2021102801(
    empno String,
    empname String,
    deptname String,
    zhiwei String,
    sal Float32
    )
    ENGINE=Log
    ;
    SELECT * FROM cs_thz_2021102801
    ;
    INSERT into cs_thz_2021102801(empno,empname,deptname,zhiwei,sal)
    values('00001','张三','开发部','职员',200);
    INSERT into cs_thz_2021102801(empno,empname,deptname,zhiwei,sal)
    values('00002','张三2','开发部','经理',600);
    INSERT into cs_thz_2021102801(empno,empname,deptname,zhiwei,sal)
    values('00003','张三3','开发部','职员',400);
    INSERT into cs_thz_2021102801(empno,empname,deptname,zhiwei,sal)
    values('00004','张三4','开发部','经理',800);
    INSERT into cs_thz_2021102801(empno,empname,deptname,zhiwei,sal)
    values('00005','张三5','销售部','职员',100);
    INSERT into cs_thz_2021102801(empno,empname,deptname,zhiwei,sal)
    values('00006','张三6','销售部','经理',200);
    INSERT into cs_thz_2021102801(empno,empname,deptname,zhiwei,sal)
    values('00007','张三7','销售部','职员',300);
    INSERT into cs_thz_2021102801(empno,empname,deptname,zhiwei,sal)
    values('00008','张三8','销售部','经理',400);
    SELECT deptname,avg(sal) FROM cs_thz_2021102801
    group by deptname
    having zhiwei='经理'
    ;

  • 相关阅读:
    Spring MVC — @RequestMapping原理讲解-1
    搭建一个SVN
    WebService远程调用技术
    Linux命令的复习总结学习
    电商-购物车总结
    单点登录系统---SSO
    JAVA的设计模式之观察者模式----结合ActiveMQ消息队列说明
    23种设计模式
    使用netty实现的tcp通讯中如何实现同步返回
    rabbitmq集群安装
  • 原文地址:https://www.cnblogs.com/jiangqingfeng/p/15475808.html
Copyright © 2011-2022 走看看