本节涉及的sql语句:

-- HAVING
-- 错误示例
SELECT deptno
FROM t_emp
WHERE AVG(sal)>=2000
GROUP BY deptno; 因为where的执行优先于group by,所以在为分组之前,AVG函数不知道对那些结果进行求平均值,也就是说函数执行的优先级要在group by 之后,函数经常出现在select中,也就是说select优先级要在group by 之后,等select 结果出炉后,在进行排序,最后进行limit分页,所以各子句的优先顺序如下: FROM > WHERE > GROUP BY > SELECT > ORDER BY > LIMIT -- HAVING SELECT deptno,AVG(sal)
FROM t_emp
GROUP BY deptno
HAVING AVG(sal)>=2000; -- 查询每个部门中,1982年以后入职的员工超过2个人的部门编号 SELECT deptno
FROM t_emp
WHERE hiredate>"1982-01-01"
GROUP BY deptno HAVING count(*)>=2; -- HAVING中不能拿一个聚合函数和一个具体的字段比较,可以和数字比较 SELECT deptno
FROM t_emp
WHERE hiredate>"1982-01-01"
GROUP BY deptno HAVING count(*)>=2 AND sal>=AVG(sal);

引入HAVING字句原因:

以上语句执行报错

采用HAVING

练习

18_MySQL之HAVING字句的使用的更多相关文章

  1. MySql中having字句对组记录进行筛选使用说明

    having字句可以让我们筛选成组后的各种数据 having的用法 having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having字句前 ...

  2. Hibernate的查询语言之HQL(二)——Hibernate查询的from字句

    from 是最简单的HQL语句,也是最基本的HQL语句.from 关键字后紧跟持久化类的类名.例如: from Person 表明从Person持久化类中取出全部的实例. 大部分时候,推荐位该Pers ...

  3. C#中let字句

    应用场景: 在查询表达式中,存储子表达式的结果有时很有用,这样可以在随后的子句中使用. 可以使用 let 关键字完成这一工作,该关键字可以创建一个新的范围变量,并且用您提供的表达式的结果初始化该变量. ...

  4. hql语句中的select字句和from 字句

    package com.imooc.model; import java.util.List; import java.util.Map; import org.hibernate.Query; im ...

  5. sql 选取分组中的第一条,显示聚合以外的列,having字句的使用

    分组中的第一条:select * from(select row_number() over(partition by 列1,列2,... order by 列1,列2,...) as rownum ...

  6. 当子查询内存在ORDER BY 字句时查询会报错

    问题:当子查询内存在ORDER BY 字句时查询会报错 SQL: SELECT * FROM ( SELECT * FROM USER ORDER BY USER_CORD ) S. 解决办法:在子查 ...

  7. TOP字句加SQL变量的相关问题

    SQL Server数据库中的变量可以加载TOP字句之后,下文将对TOP字句加SQL变量的相关问题进行讨论,供您参考,希望对您学习SQL数据库有所帮助. SQL Server2005开始,TOP子句后 ...

  8. SQL Server ->> THROW字句对比RAISERROR子句

    SQL Server 2012开始引入了THROW字句用于替代从SQL Server开始沿用至今的RAISERROR.既然作用相同,都是在TRY... CATCH代码块后不抓错误然后抛出错误,它们之间 ...

  9. WHERE字句

    structured query language(非过程性的结构查询语言) 主要内容: 数据库怎么限制里面的数据: 数据库怎么排列里面的数据. WHERE子句: --WHERE字句起到的是对数据库查 ...

随机推荐

  1. docker镜像加速,docker更换为国内镜像

    docker镜像加速,docker更换为国内镜像 一.使用官方镜像 二.Docker守护进程配置加速器 相关博文原文地址: CSDN:让我思考一下 :docker更换为国内镜像 一.使用官方镜像 Do ...

  2. 【Oracle】SQL/92 执行多个表的连接

    内连接 外连接 自连接 交叉连接 1.内连接 表名 INNER JOIN 表名 ON 条件 等价于: FROM 表名, 表名 WHERE 条件 SELECT p.name, pt.name, pt.p ...

  3. python--函数、参数、名称空间与作用域、匿名函数、内置函数、闭包

    python函数 函数定义 def welcome(): print('hello world!!') welcome() #函数调用 ...运行结果 hello world!! 函数定义和编写原则: ...

  4. nginx详解、反向代理、负载均衡和LNMP架构

    资源池 nginx官方网站:http://nginx.org/ nginx官方文档:http://nginx.org/en/docs/ 本章资源: 点击这里 资源提取码:u2jv 1.nginx简介 ...

  5. 【Android初级】如何实现一个比相册更高大上的左右滑动特效(附源码)

    在Android里面,想要实现一个类似相册的左右滑动效果,我们除了可以用Gallery.HorizontalScrollView.ViewPager等控件,还可以用一个叫做 ViewFlipper 的 ...

  6. 如何为Kafka集群确定合适的分区数以及分区数过多带来的弊端

    通过之前的文章<Kafka分区分配策略>和<Kafka高性能揭秘>,我们了解到:Kafka高吞吐量的原因之一就是通过partition将topic中的消息保存到Kafka集群中 ...

  7. 通过HBase Observer同步数据到ElasticSearch

    Observer希望解决的问题 HBase是一个分布式的存储体系,数据按照RowKey分成不同的Region,再分配给RegionServer管理.但是RegionServer只承担了存储的功能,如果 ...

  8. hdu2852 KiKi's K-Number

    Problem Description For the k-th number, we all should be very familiar with it. Of course,to kiki i ...

  9. JavaScript——二

    样式: 实验二. querySelectorAll()里面如果填id名称就直接写,如果要确定某个属性的值,就要用到[ ]来具体选择,其中写多个以空格隔开就表达第一个声明下的第二个标签内部的某个属性 这 ...

  10. Codeforces Round #669 (Div. 2) A. Ahahahahahahahaha (构造)

    题意:有一个长度为偶数只含\(0\)和\(1\)的序列,你可以移除最多\(\frac{n}{2}\)个位置的元素,使得操作后奇数位置的元素和等于偶数位置的元素和,求新序列. 题解:统计\(0\)和\( ...