首页 > 数据库 >Sql中 Having与Where的区别

Sql中 Having与Where的区别

时间:2023-03-05 17:03:36浏览次数:33  
标签:语句 GROUP Where 子句 having 分组 Sql where Having


where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行。

having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件过滤出特定的组,也可以使用多个分组标准进行分组。

注意:

1、HAVING子句必须位于GROUP BY之后ORDER BY之前。
2、WHERE语句在GROUP BY语句之前;SQL会在分组之前计算WHERE语句。
3、HAVING语句在GROUP BY语句之后;SQL会在分组之后计算HAVING语句。

示例 :

select 类别, sum(数量) as 数量之和 from A group by 类别 having sum(数量) > 18

示例:Having和Where的联合使用方法

select 类别, SUM(数量)from A where 数量 > 8 group by 类别 having SUM(数量) > 10


标签:语句,GROUP,Where,子句,having,分组,Sql,where,Having
From: https://blog.51cto.com/sdwml/6101538

相关文章

  • 数据库多表查询之 where & INNER JOIN
    在多表查询中,一些SQL开发人员更喜欢使用WHERE来做join,比如:SELECTa.ID,b.Name,b.DateFROMCustomersa,SalesbWHEREa.ID=b.ID;缺点:在上面语句中,实际上是创建了两张......
  • 使用Oracle Outline锁定SQL执行计划
    文档课题:使用OracleOutline锁定SQL执行计划.1、相关概念Oracle的Outline技术可在某些情况下保证执行计划的稳定性.应用场景:A、短时间内无法完成SQL的优化任务,此时可使用out......
  • SQL语句顺序
          查询的结构  SELECT执行顺序 ......
  • MySQL基本命令操作
    目录创建数据库删除数据库数据表的创建与管理删除数据表修改字段数据类型添加字段字段更名删除字段表数据管理插入数据查询数据模糊匹配排序与分组HAVING子句查询聚合函数......
  • SQL-排序与分页
    1.排序(ORDERBY)使用:ORDERBY对查询到的数据进行排序操作升序:ASC(ascend)默认不写升序降序:DESC(descend)SELECTemployee_id,salaryFROMemployeesORDERBYsalaryDES......
  • P8大佬的 62条SQL优化策略,太牛X了!! 收藏起来有大用!!!
    背景说明:Mysql调优,是大家日常常见的调优工作。所以Mysql调优是一个非常、非常核心的面试知识点。在40岁老架构师尼恩的读者交流群(50+)中,其相关面试题是一个非常、非常......
  • SQLAlchemy
    SQLAlchemy简单介绍ORM较全的框架,可以使用ORM操作表,比较方便ORMObjectRelationMApping对象关系映射通过操作对象的方式来操纵表之间的关系一.单表操作......
  • ruby postgresql 模糊搜索
    客户需求,通过name,email两列中的字段进行搜索过滤这项目之前用的​​pg_search​​​email的addresses是不能过滤的,例如[email protected],只能搜martin,搜163.com是搜不到的......
  • php 检测mysql表是否存在
    pdo:<?php$dsn='mysql:dbname=test;host=127.0.0.1';$user='root';$password='';try{$pdo=newPDO($dsn,$user,$password);}catch(PDOException$e){......
  • SQL笔记--MySQL高级操作
    MySQL高级SQL操作数据新增多数据插入蠕虫复制主键冲突查询数据查询选项别名数据源where子句groupby子句having子句orderby子句limit子句更新数据限制更新删除数据限制......