在介绍GROUP BY 和 HAVING 子句前,我们必需先讲讲sql语言中一种特殊的函数:聚合函数,
例如SUM, COUNT, MAX, AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。
SELECT SUM(population) FROM bbc
这里的SUM作用在所有返回记录的population字段上,结果就是该查询只返回一个结果,即所有
国家的总人口数。
通过使用GROUP BY 子句,可以让SUM 和 COUNT 这些函数对属于一组的数据起作用。
当你指定 GROUP BY region 时, 属于同一个region(地区)的一组数据将只能返回一行值.
也就是说,表中所有除region(地区)外的字段,只能通过 SUM, COUNT等聚合函数运算后返回一个值.
HAVING子句可以让我们筛选成组后的各组数据.
WHERE子句在聚合前先筛选记录.也就是说作用在GROUP BY 子句和HAVING子句前.
而 HAVING子句在聚合后对组记录进行筛选。
让我们还是通过具体的实例来理解GROUP BY 和 HAVING 子句,还采用第三节介绍的bbc表。
SQL实例:
一、显示每个地区的总人口数和总面积.
SELECT region, SUM(population), SUM(area)
FROM bbc
GROUP BY region
先以region把返回记录分成多个组,这就是GROUP BY的字面含义。分完组后,然后用聚合函数对每组中
的不同字段(一或多条记录)作运算。
二、 显示每个地区的总人口数和总面积.仅显示那些面积超过1000000的地区。
SELECT region, SUM(population), SUM(area)
FROM bbc
GROUP BY region
HAVING SUM(area)>1000000
在这里,我们不能用where来筛选超过1000000的地区,因为表中不存在这样一条记录。
相反,HAVING子句可以让我们筛选成组后的各组数据
分享到:
相关推荐
### MySQL中的HAVING子句详解 #### 聚合函数简介 在深入探讨`HAVING`子句之前,首先需要了解SQL中的聚合函数。聚合函数是SQL语言中一种特殊的功能,用于处理多条记录并返回单个结果。常见的聚合函数包括: - **SUM*...
MySQL中的`HAVING`子句是SQL查询语句中的一个重要组成部分,主要用于在聚合函数结果集上设置条件过滤。与`WHERE`子句不同,`WHERE`通常用于在数据被聚合之前筛选行,而`HAVING`则在数据聚合之后进行过滤。在处理分组...
having的用法 having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having字句前。而 having子句在聚合后对组记录进行筛选。 SQL实例: 一、显示每个地区的总人口数和...
MySQL数据库:HAVING子句.pptx
- `GROUP BY`和`HAVING`:对数据进行分组并筛选,常用于统计分析。 - `ORDER BY`:排序结果,如`SELECT * FROM users ORDER BY name ASC;`按名字升序排列用户。 5. 存储过程和触发器 存储过程是一组预编译的SQL...
通过以上详细的介绍,我们可以看到`WHERE`与`HAVING`子句在SQL查询中的不同作用以及在ThinkPHP框架中如何利用`create()`等方法有效地管理数据的创建和验证过程。这对于提高应用程序的数据安全性和性能有着至关重要的...
首先,手册中的"函数"部分会详细介绍如何在SQL查询中使用这些函数来处理数据。函数大致可以分为以下几类: 1. 数学函数:例如ABS()用于计算绝对值,SQRT()用于求平方根,RAND()用于生成随机数,以及一系列的三角...
在MySQL数据库中,USING 和 HAVING 是两个非常重要的关键字,它们在数据查询和处理中起着关键作用。本文将详细解析这两个关键字的功能、用法以及相关操作注意事项。 首先,USING 关键字主要用于在JOIN操作中指定...
2.2020-开年标杆班-day05-MySQL-select having order by limit 3.2020-开年标杆班-day05-MySQL-select 多表连接查询介绍 4.2020-开年标杆班-day05-MySQL-select 多表连接查询例子讲解 5.2020-开年标杆班-day...
在MySQL中,`GROUP BY` 和 `HAVING` 通常一起用于聚合查询,用来筛选满足特定条件的分组。然而,当没有 `GROUP BY` 子句时,直接使用 `HAVING` 可能会导致非预期的行为。这个问题的探讨主要集中在 `HAVING` 后面直接...
MySQL数据库考试试题及答案 在本文中,我们将对 MySQL 数据库考试试题及答案进行详细的解析,并总结出相关的知识点。 1.数据库聚合函数 在 MySQL 中,聚合函数用于对数据进行汇总和计算。 SUM 函数用于计算数据...
本文档主要介绍了MySQL数据库的基本概念、数据类型、SQL语言、约束条件、查询语言、聚合函数、子查询和多表查询等知识点。 数据库基础概念 在介绍MySQL数据库之前,首先需要了解数据库的基本概念。数据库是一个...
此外,还有用于聚合查询的`GROUP BY`、`HAVING`,用于连接多个表的`JOIN`,以及用于排序的`ORDER BY`等。 4. 视图:视图是虚拟表,它基于一个或多个表的查询结果。视图可以简化复杂的查询,提供安全层,以及抽象...
它可以结合WHERE子句过滤结果,使用GROUP BY和HAVING进行分组,以及使用ORDER BY和LIMIT进行排序和限制返回的行数。 5. 插入与更新数据:INSERT语句用于向表中添加新记录,UPDATE语句用于修改已存在的记录。DELETE...
在MySQL数据库中,`GROUP BY` 和 `HAVING` 是两个非常重要的SQL子句,它们在数据分析和报表生成中扮演着关键角色。`GROUP BY` 用于将数据按照指定的一个或多个列进行分组,而 `HAVING` 则用于在分组后对这些分组进行...
在MySQL数据库中,ORDER BY、GROUP BY 和 HAVING 子句是SQL查询中用于数据处理的关键组成部分,它们各自承担不同的任务,以帮助我们从数据库中提取有用的信息。 ORDER BY 子句主要用于对查询结果集进行排序。当你...
此外,还会涉及更复杂的SQL操作,如JOIN用于联接多表查询,GROUP BY和HAVING用于分组和过滤,以及子查询和窗口函数的应用。 三、数据库设计 这部分内容会介绍数据库设计的基本原则,如范式理论(第一范式、第二范式...
查询语句是数据库操作的核心,SELECT语句用于从表中检索数据,可以结合WHERE子句进行条件筛选,GROUP BY和HAVING子句用于数据分组和过滤,ORDER BY用于排序,LIMIT用于限制返回结果的数量。此外,JOIN操作用于连接多...