首页 > 数据库 >SQL Server中的having(对分组后的信息过滤)

SQL Server中的having(对分组后的信息过滤)

时间:2022-12-03 21:45:25浏览次数:47  
标签:1700 sal Server 过滤 SQL deptno avg having

https://blog.csdn.net/tswc_byy/article/details/81909822

 

 

二、having的用法
1.解释:having子句是用来对分组之后的信息进行过滤,因此使用having时通常都会先使用group by。

select deptno,avg(sal) from emp group by deptno having avg(sal)>1700
--查找不同deptno的平均sal,输出平均sal大于1700的

 

 


2.如果没有使用group by但使用了having,则意味着对整体信息进行过滤,例:

select count(*) from emp having avg(sal)>1700

 

 


3.having子句出现的字段必须的是分组之后的组的整体信息,having子句不允许出现组内的详细信息

4. 尽管select字段中可以出现别名,但是having子句中不能出现字段的别名,只能使用字段最原始的名字!例:

select deptno,avg(sal) "平均sal" from emp group by deptno having avg(sal)>1700
--查找不同deptno的平均sal,输出平均sal大于1700的

 

 

select deptno,avg(sal) "平均sal" from emp group by deptno having "平均sal">1700 --error

 

 


5. having和where的异同:

相同:
都是对数据过滤,只保留有效的数据;
where和having一样, 都不允许出现字段的别名;
只允许出现最原始的字段的名字。

不同:
where是对原始的记录过滤having是对分组之后的记录过滤;
where必须的写在having的前面,顺序不可颠倒否则运行出错。

标签:1700,sal,Server,过滤,SQL,deptno,avg,having
From: https://www.cnblogs.com/Dongmy/p/16948830.html

相关文章

  • Sqlserver中的 树节点
    题目: https://leetcode.cn/problems/tree-node/给定一个表 tree,id是树节点的编号, p_id 是它父节点的 id。+----+------+|id|p_id|+----+------+|1|null......
  • SqlServer 中 case when 的的两种写法
    https://mp.weixin.qq.com/s?src=11&timestamp=1670070823&ver=4204&signature=OpXckzt0JIEqamYo0WpJqwgtbQDMFkUpQ0Nc56WLqzHq0bMR91TRHbCxycSCx49JmQNO9K7MCZ-XLqzjJeTnS......
  • SqlServer行转列,列转行
    文章来源:https://leetcode.cn/problems/rearrange-products-table/solution/by-esqiimulme-pjiy/列转行用union或unionall将多列的字段整合到一行。(当使用union时,mysql......
  • [MySQL] 索引失效的情况
    1.查询条件中有or,即使有部分条件带索引也会失效2.like查询是以%开头3.如果列类型是字符串,那在查询条件中需要将数据用引号引用起来,否则不走索引4.索引列上参与计算......
  • sql-lab 8-17 盲注加post传参
    布尔型盲注length()函数返回字符串的长度?id=1'and(length(database()))=8--qwesubstr()截取字符串(语法:SUBSTR(str,pos,len);)?id=1'and(ascii(substr(database......
  • MySQL 5.7 主从复制 GTID
    GTID中slave端的binlog是必须开启的,目的是记录执行过的GTID主库#开启gtidlog-bin=mysql-binexpire_logs_days=5binlog_format=mixedserver-id=1gtid_mode=onenforce_g......
  • MySQL数据库之事务
    一、事务的概念事务是一种机制、一个操作序列,包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么......
  • 使用Serverless的函数需要关注这些内容
    使用Serverless的函数需要关注这些内容有了serverless,我们只需要编写函数就可以了,但在函数的触发的时候需要特别留意的是它的上下文的问题。这篇文章我们讲讲Serverless中......
  • java——mybatis——动态SQL——动态sql语句-foreach和sql标签的使用
                                                       ......
  • sql递归查询-mysql8为例
    总体描述数据准表通过CTE实现,当前版本是mariadb8.0.31,于mysql8相当。数据表(也就是原表):select*fromrecurrenceaidparent_id全球null中国全球......