我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SQL中having和where如何使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SQL中having和where如何使用

这篇文章将为大家详细讲解有关SQL中having和where如何使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

“Where” 是一个约束声明,使用Where来约束来之数据库的数据,Where是在结果返回之前起作用的,且Where中不能使用聚合函数。

“Having”是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作,在Having中可以使用聚合函数。

聚合函数,SQL基本函数,聚合函数对一组值执行计算,并返回单个值。除了 COUNT 以外,聚合函数都会忽略空值。 聚合函数经常与 SELECT 语句的 GROUP BY 子句一起使用。

Transact-SQL编程语言提供下列聚合函数:

1.AVG 返回指定组中的平均值,空值被忽略。

例:select prd_no,avg(qty) from sales group by prd_no

2. COUNT 返回指定组中项目的数量。

例:select count(prd_no) from sales

3. MAX 返回指定数据的最大值。

例:select prd_no,max(qty) from sales group by prd_no

4. MIN 返回指定数据的最小值。

例:select prd_no,min(qty) from sales group by prd_no

在说区别之前,得先介绍GROUP BY这个子句,而在说GROUP子句前,又得先说说“聚合函数”——SQL语言中一种特殊的函数。例如SUM, COUNT, MAX, AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。如:

SELECT SUM(population) FROM vv_t_bbc ;

  这里的SUM作用在所有返回记录的population字段上,结果就是该查询只返回一个结果,即所有国家的总人口数。

   而通过使用GROUP BY 子句,可以让SUM 和 COUNT 这些函数对属于一组的数据起作用。当你指定 GROUP BY region 时,只有属于同一个region(地区)的一组数据才将返回一行值,也就是说,表中所有除region(地区)外的字段,只能通过 SUM, COUNT等聚合函数运算后返回一个值。

下面再说说“HAVING”和“WHERE”:

  HAVING子句可以让我们筛选成组后的各组数据,WHERE子句在聚合前先筛选记录.也就是说作用在GROUP BY 子句和HAVING子句前;而 HAVING子句在聚合后对组记录进行筛选。

  让我们还是通过具体的实例来理解GROUP BY 和 HAVING 子句:

  SQL实例:

  一、显示每个地区的总人口数和总面积:

SELECT region, SUM(population), SUM(area)FROM bbcGROUP BY region

  先以region把返回记录分成多个组,这就是GROUP BY的字面含义。分完组后,然后用聚合函数对每组中的不同字段(一或多条记录)作运算。

  二、显示每个地区的总人口数和总面积.仅显示那些人口数量超过1000000的地区。

SELECT region, SUM(population), SUM(area)FROM bbcGROUP BY regionHAVING SUM(population)>1000000

[注]  在这里,我们不能用where来筛选超过1000000的地区,因为表中不存在这样一条记录。

  相反,HAVING子句可以让我们筛选成组后的各组数据.

ps:如果想根据sum后的字段进行排序可以在后面加上:order by sum(population) desc/asc

关于SQL中having和where如何使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SQL中having和where如何使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

SQL中having和where怎么使用

在SQL中,HAVING子句和WHERE子句都用于筛选数据,但它们的使用场景有所不同。WHERE子句:WHERE子句用于在对查询的原始数据进行筛选时使用。它通常用于筛选行级别的数据,即对每一行数据进行判断,如果符合条件则保留,不符合条件则
SQL中having和where怎么使用
2024-04-19

sql中having和where的用法

where 子句在 select 语句中筛选行,根据行条件过滤基础数据。having 子句在 group by 语句中筛选组,根据组的聚合结果过滤组。主要区别:where 处理单个行,评估行的条件;having 处理组,评估组的聚合结果;w
sql中having和where的用法
2024-05-02

sql中having和where的区别

在 sql 中,having 和 where 都用于过滤数据,但它们的区别在于:where 过滤单个行,而 having 过滤聚合函数的结果。where 在 from 子句之后使用,而 having 在 group by 子句之后使用。wh
sql中having和where的区别
2024-05-07

sql中where和having的区别

where 和 having 子句在 sql 中均用于过滤数据,但作用范围不同:where 子句过滤单行,having 子句过滤分组后的结果集。where 子句在分组前应用,影响聚合函数的结果行;having 子句在分组后应用,影响分组行而
sql中where和having的区别
2024-05-01

sql中having和where可以一起用么

sql 中,having 用于过滤分组后的数据,基于组的数据;where 用于过滤单行数据,基于单行数据。同时使用它们时,where 过滤单行数据,having 过滤分组后的数据。示例:where 过滤单行工资超过 50000 的员工,ha
sql中having和where可以一起用么
2024-05-02

oracle中having和where区别

having 和 where 子句的区别在于:having 用于过滤聚合结果(即分组后的数据),而 where 用于过滤基本表或视图中的行。此外,having 要求数据已分组,而 where 不需要分组。Oracle 中 HAVING 和
oracle中having和where区别
2024-04-30

oracle中where和having的区别

where 和 having 子句的区别在于作用范围:where 过滤基础行,having 过滤分组结果集。where 用于单个行条件,having 用于组结果条件。where 在 from 后 select 前,having 在 grou
oracle中where和having的区别
2024-05-03

mysql中where和having的区别

where 子句过滤行,应用于分组前;having 子句过滤组,应用于分组后且可使用组聚合函数的结果。WHERE 与 HAVING 子句的区别在 MySQL 中,WHERE 和 HAVING 子句都用于过滤数据集,但它们在作用范围和使用方
mysql中where和having的区别
2024-05-02

mysql中where和having的关系

where 子句过滤行级别数据,而 having 子句过滤组级别数据。where 子句在 from 关键字后应用,而 having 子句在 group by 关键字后应用。MySQL 中 WHERE 和 HAVING 子句的关系WHERE
mysql中where和having的关系
2024-05-01

编程热搜

目录