`

MySQL having介绍

阅读更多
在介绍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子句可以让我们筛选成组后的各组数据


引自:http://hi.baidu.com/luzheng22/blog/item/4fc0f5313653ef12ebc4af72.html
分享到:
评论

相关推荐

    having-mysql

    ### MySQL中的HAVING子句详解 #### 聚合函数简介 在深入探讨`HAVING`子句之前,首先需要了解SQL中的聚合函数。聚合函数是SQL语言中一种特殊的功能,用于处理多条记录并返回单个结果。常见的聚合函数包括: - **SUM*...

    mysqlhaving用法共2页.pdf.zip

    MySQL中的`HAVING`子句是SQL查询语句中的一个重要组成部分,主要用于在聚合函数结果集上设置条件过滤。与`WHERE`子句不同,`WHERE`通常用于在数据被聚合之前筛选行,而`HAVING`则在数据聚合之后进行过滤。在处理分组...

    mysql having用法解析

    having的用法 having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having字句前。而 having子句在聚合后对组记录进行筛选。 SQL实例: 一、显示每个地区的总人口数和...

    MySQL数据库:HAVING子句.pptx

    MySQL数据库:HAVING子句.pptx

    MySql MySql使用方法 Mysql例子

    - `GROUP BY`和`HAVING`:对数据进行分组并筛选,常用于统计分析。 - `ORDER BY`:排序结果,如`SELECT * FROM users ORDER BY name ASC;`按名字升序排列用户。 5. 存储过程和触发器 存储过程是一组预编译的SQL...

    基于TP框架SQL之where与having区别

    通过以上详细的介绍,我们可以看到`WHERE`与`HAVING`子句在SQL查询中的不同作用以及在ThinkPHP框架中如何利用`create()`等方法有效地管理数据的创建和验证过程。这对于提高应用程序的数据安全性和性能有着至关重要的...

    Mysql函数手册.rar_MySQL函数手册_VZI_mysql 函数手册

    首先,手册中的"函数"部分会详细介绍如何在SQL查询中使用这些函数来处理数据。函数大致可以分为以下几类: 1. 数学函数:例如ABS()用于计算绝对值,SQRT()用于求平方根,RAND()用于生成随机数,以及一系列的三角...

    MySQL中USING 和 HAVING 用法实例简析

    在MySQL数据库中,USING 和 HAVING 是两个非常重要的关键字,它们在数据查询和处理中起着关键作用。本文将详细解析这两个关键字的功能、用法以及相关操作注意事项。 首先,USING 关键字主要用于在JOIN操作中指定...

    最新老男孩Mysql标杆班day05.rar

    2.2020-开年标杆班-day05-MySQL-select having order by limit 3.2020-开年标杆班-day05-MySQL-select 多表连接查询介绍 4.2020-开年标杆班-day05-MySQL-select 多表连接查询例子讲解 5.2020-开年标杆班-day...

    MYSQL教程MYSQL教程MYSQL教程

    本教程将全面介绍MySQL的基础知识,包括安装配置、数据类型、SQL语句、表的操作、索引、视图、存储过程、触发器、事务处理、备份与恢复等核心概念。 1. **MySQL安装与配置** - MySQL的下载:首先,你需要从MySQL...

    MySQL中无GROUP BY情况下直接使用HAVING语句的问题探究

    在MySQL中,`GROUP BY` 和 `HAVING` 通常一起用于聚合查询,用来筛选满足特定条件的分组。然而,当没有 `GROUP BY` 子句时,直接使用 `HAVING` 可能会导致非预期的行为。这个问题的探讨主要集中在 `HAVING` 后面直接...

    MySQL中文参考手册 chm版

    2. **SQL语法**:SQL是用于操作数据库的语言,手册会详细介绍SELECT(查询)、INSERT(插入)、UPDATE(更新)和DELETE(删除)等基本语句,以及JOIN、GROUP BY、HAVING和子查询等复杂查询技巧。 3. **数据库管理**...

    MySQL数据库考试试题及答案-34页

    MySQL数据库考试试题及答案 在本文中,我们将对 MySQL 数据库考试试题及答案进行详细的解析,并总结出相关的知识点。 1.数据库聚合函数 在 MySQL 中,聚合函数用于对数据进行汇总和计算。 SUM 函数用于计算数据...

    MYSQL一头扎进MYSQL

    此外,还有用于聚合查询的`GROUP BY`、`HAVING`,用于连接多个表的`JOIN`,以及用于排序的`ORDER BY`等。 4. 视图:视图是虚拟表,它基于一个或多个表的查询结果。视图可以简化复杂的查询,提供安全层,以及抽象...

    Mysql手册_MYSQL_

    它可以结合WHERE子句过滤结果,使用GROUP BY和HAVING进行分组,以及使用ORDER BY和LIMIT进行排序和限制返回的行数。 5. 插入与更新数据:INSERT语句用于向表中添加新记录,UPDATE语句用于修改已存在的记录。DELETE...

    mysql group by having 实例代码

    在MySQL数据库中,`GROUP BY` 和 `HAVING` 是两个非常重要的SQL子句,它们在数据分析和报表生成中扮演着关键角色。`GROUP BY` 用于将数据按照指定的一个或多个列进行分组,而 `HAVING` 则用于在分组后对这些分组进行...

    Mysql中order by、group by、having的区别深入分析

    在MySQL数据库中,ORDER BY、GROUP BY 和 HAVING 子句是SQL查询中用于数据处理的关键组成部分,它们各自承担不同的任务,以帮助我们从数据库中提取有用的信息。 ORDER BY 子句主要用于对查询结果集进行排序。当你...

    MySQL5.7从入门到精通 带书签 高清

    此外,还会涉及更复杂的SQL操作,如JOIN用于联接多表查询,GROUP BY和HAVING用于分组和过滤,以及子查询和窗口函数的应用。 三、数据库设计 这部分内容会介绍数据库设计的基本原则,如范式理论(第一范式、第二范式...

Global site tag (gtag.js) - Google Analytics