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='经理'
    ;

  • 相关阅读:
    window下安装nvm、node.js、npm的步骤
    命令行创建Android模拟器
    2016 JavaScript 各种排名
    js开发工作流
    javascript流行工具
    Linux下进程间通信的常用方法
    Linux下回收子进程wait函数和waitpid函数的基本使用
    Linux下exec函数族比如execve等函数的基本使用
    Linux下创建子进程fork函数等的基本使用
    vi操作键盘图
  • 原文地址:https://www.cnblogs.com/jiangqingfeng/p/15475808.html
Copyright © 2011-2022 走看看