mysql中having的用法是什么

mysql中,having子句用于筛选分组之后的各种数据,通常与“group by”联合使用,该语句弥补了where关键字无法与聚合函数联合使用的不足。

mysql中having的用法是什么

本教程操作环境:windows10系统、mysql8.0.22版本、Dell G3电脑。

mysql中having的用法是什么

在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。

HAVING 子句可以让我们筛选分组后的各组数据。

SQL HAVING 语法

SELECT column_name, aggregate_function(column_name)FROM table_nameWHERE column_name operator valueGROUP BY column_nameHAVING aggregate_function(column_name) operator value;

演示数据库

在本教程中,我们将使用 RUNOOB 样本数据库。

下面是选自 “Websites” 表的数据:

+----+--------------+---------------------------+-------+---------+| id | name         | url                       | alexa | country |+----+--------------+---------------------------+-------+---------+| 1  | Google       | https://www.google.cm/    | 1     | USA     || 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      || 3  | 菜鸟教程      | http://www.runoob.com/    | 4689  | CN      || 4  | 微博          | http://weibo.com/         | 20    | CN      || 5  | Facebook     | https://www.facebook.com/ | 3     | USA     || 7  | stackoverflow | http://stackoverflow.com/ |   0 | IND     |+----+---------------+---------------------------+-------+---------+

下面是 “access_log” 网站访问记录表的数据:

mysql> SELECT * FROM access_log;+-----+---------+-------+------------+| aid | site_id | count | date       |+-----+---------+-------+------------+|   1 |       1 |    45 | 2016-05-10 ||   2 |       3 |   100 | 2016-05-13 ||   3 |       1 |   230 | 2016-05-14 ||   4 |       2 |    10 | 2016-05-14 ||   5 |       5 |   205 | 2016-05-14 ||   6 |       4 |    13 | 2016-05-15 ||   7 |       3 |   220 | 2016-05-15 ||   8 |       5 |   545 | 2016-05-16 ||   9 |       3 |   201 | 2016-05-17 |+-----+---------+-------+------------+9 rows in set (0.00 sec)

SQL HAVING 实例

现在我们想要查找总访问量大于 200 的网站。

我们使用下面的 SQL 语句:

SELECT Websites.name, Websites.url, SUM(access_log.count) AS nums FROM (access_logINNER JOIN WebsitesON access_log.site_id=Websites.id)GROUP BY Websites.nameHAVING SUM(access_log.count) > 200;

执行以上 SQL 输出结果如下:

12.png

推荐学习:mysql视频教程

以上就是mysql中having的用法是什么的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/177794.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2026年9月1日 11:56:06
MongoDB小结
下一篇 2025年11月27日 02:16:05

相关推荐

  • mysql index关键字的用法是什么

    在mysql中,index关键字可用于创建索引,语法“CREATE INDEX 索引名 ON 表名(列名)”;可用于查看索引,语法“SHOW INDEX FROM 表名”;也可用于修改索引,语法“DROP INDEX 索引名 ON 表名”。 本教程操作环境:windows7系统、mysql8版本、D…

    2026年9月1日
    000
  • mysql中5.6和5.5有什么区别

    mysql中5.6和5.5有什么区别mysql中5.6和5.5有什么区别mysql中5.6和5.5有什么区别mysql中5.6和5.5有什么区别

    区别:1、在5.5版本中主从配置不能省略binlog和POS两个参数,而在5.6版本中这两个参数可以省略;2、在5.5版本中不支持多线程复制,同步复制是单线程、队列的,而在5.6版本中支持多线程复制。 本教程操作环境:windows10系统、mysql8.0.22版本、Dell G3电脑。 mysq…

    2026年9月1日 用户投稿
    100
  • MySQL如何实现实时数据同步_跨机房数据同步方案?

    MySQL如何实现实时数据同步_跨机房数据同步方案?MySQL如何实现实时数据同步_跨机房数据同步方案?MySQL如何实现实时数据同步_跨机房数据同步方案?MySQL如何实现实时数据同步_跨机房数据同步方案?

    mysql实时数据同步在跨机房场景下的核心方案包括:1. 基于binlog的复制,通过slave节点读取master的binlog实现同步,优点稳定但受网络和负载影响;2. 基于gtid的复制,简化管理但需mysql 5.6+支持;3. mysql group replication,提供高可用但资…

    2026年9月1日 用户投稿
    000
  • mysql中union的用法是什么

    mysql中union的用法是什么mysql中union的用法是什么mysql中union的用法是什么mysql中union的用法是什么

    mysql中,union用于将多个select语句的结果组合到一个结果集中,并删除结果集中的重复数据,语法为“select column,…from table1 union select column,…from table2”。 本教程操作环境:windows10系统、m…

    2026年9月1日 用户投稿
    100
  • mysql与db2的区别是什么

    mysql与db2的区别:1、mysql可以对最小单元的对象批量进行授权,而db2不可以对最小单元的对象批量进行授权;2、mysql支持在恢复时打开数据库,而db2不支持在恢复时打开数据库。 本教程操作环境:windows10系统、mysql8.0.22版本、Dell G3电脑。 mysql与db2…

    2026年9月1日
    100
  • mysql编码怎么修改为utf8

    mysql编码修改为utf8的方法:1、打开并修改mysql配置文件“my.ini”;2、在“mysqld”标签下添加“default-character-set = utf8”;3、重新启动mysql服务即可。 本教程操作环境:windows10系统、mysql8.0.22版本、Dell G3电脑…

    2026年9月1日
    000
  • mysql中5.6与5.7有什么区别

    mysql中5.6与5.7的区别:1、5.7版本提供了json格式数据,而5.6版本没有提供json版本数据;2、5.7版本支持多主一从,而5.6版本不支持多主一从;3、5.7版本初始化数据时在bin目录下,而5.6版本在script目录。 本教程操作环境:windows10系统、mysql8.0.…

    2026年9月1日
    100
  • 如何利用MySQL唯一索引和分布式锁/数据库锁防止特定时间段内的数据重复插入?

    如何利用MySQL唯一索引和锁机制避免特定时间段内的数据重复插入? 本文探讨如何防止在特定时间范围内(例如10:15-11:15)向MySQL数据库插入重复数据。直接使用MySQL唯一索引无法完全解决此问题,因为时间戳是动态变化的。 解决方案: 1. 高效方案:利用分布式锁(例如Redis) 对于高…

    2026年9月1日
    100
  • mysql中–是啥意思

    在mysql中,“–”是注释符,是单行注释的意思,该注释符后需要添加一个空格注释才能生效,语法为“– 注释内容”;该注释符与“#”注释符都用于单行注释,区别就是“#”注释符后不需要添加空格。 本教程操作环境:windows10系统、mysql8.0.22版本、Dell G3电…

    2026年9月1日
    000
  • mysql视图有索引吗

    mysql中视图没有索引。视图是一张虚拟的表,并不真实的存在于数据库中,所以也就没有主键、索引,因为视图没有行和列,本质上就是语句,当调用视图时系统先执行生成视图的语句,然后在视图的基础上进行查询。 本教程操作环境:windows10系统、mysql8.0.22版本、Dell G3电脑。 mysql…

    2026年9月1日
    100
  • MySQL唯一索引如何实现基于时间段的约束?

    MySQL如何实现基于时间段的唯一索引约束? 如何在MySQL中创建唯一索引,以确保同一时间段内只允许插入一条记录?直接用索引无法实现,但我们可以通过以下两种方法解决: 方法一:利用分布式锁(高频数据场景推荐) 此方法适合数据插入频率较高的场景。 流程如下: 使用Redis等分布式锁服务。插入数据前…

    2026年9月1日
    100
  • MySQL数据库基础知识点储备(整理总结)

    本篇文章给大家带来了关于mysql数据库的相关知识,主要整理了数据库基础的一下知识点,包括索引、语法顺序、执行顺序、存储过程等等相关问题,希望对大家有帮助。 推荐学习:mysql教程 一、数据库 1.1 事务 1.1.1 事务四个特性(ACID) 原子性 (Atomicity) 整个事务中的所要操作…

    2026年9月1日
    100
  • MySQL你必须要了解存储引擎

    MySQL你必须要了解存储引擎MySQL你必须要了解存储引擎MySQL你必须要了解存储引擎MySQL你必须要了解存储引擎

    本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了存储引擎的相关问题,还包括了索引设计与使用、数据类型选择以及字符集设置等问题,希望对大家有帮助。 推荐学习:mysql教程 谁说MySQL查询千万级别的数据很拉跨?我今天就要好好的和你拉拉家常,畅谈到深夜,一起过除夕!这篇文章也是年前的最后…

    2026年9月1日 用户投稿
    400
  • 归纳详解MySQL知识点之表结构

    归纳详解MySQL知识点之表结构归纳详解MySQL知识点之表结构归纳详解MySQL知识点之表结构归纳详解MySQL知识点之表结构

    本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了表结构包括了约束条件以及修改表结构的相关问题,希望对大家有帮助。 推荐学习:mysql教程 约束条件 作用是限制如何给字段赋值 查看约束条件 mysql> desc 库名.表名; mysql> desc db1.t9; //如图…

    2026年9月1日 用户投稿
    600
  • 一文详解MySQL中的事务和 MVCC 原理

    一文详解MySQL中的事务和 MVCC 原理一文详解MySQL中的事务和 MVCC 原理一文详解MySQL中的事务和 MVCC 原理一文详解MySQL中的事务和 MVCC 原理

    本篇文章带大家了解一下mysql中的事务,并介绍一下mvcc 原理,希望能够给大家提供帮助! 01 什么是事务? 数据库事务指的是一组数据操作,事务内的操作要么就是全部成功,要么就是全部失败,什么都不做,其实不是没做,是可能做了一部分但是只要有一步失败,就要回滚所有操作,有点一不做二不休的意思。 在…

    2026年9月1日 用户投稿
    100
  • mysql报错注入是什么

    在mysql中,报错注入就是指通过页面报出的错误信息,构造合适的语句来获取想要的数据;应用系统未关闭数据库报错函数,可以使用extractvalue()函数,从目标XML中返回包含所查询值的字符串。 本教程操作环境:windows10系统、mysql8.0.22版本、Dell G3电脑。 mysql…

    2026年9月1日
    400
  • mysql怎么给查询加序号

    在mysql中,可以利用SELECT语句定义用户变量给查询结果添加序号,语法为“SELECT 字段1,字段2,(@i:=@i+1) AS ‘序号’ FROM 表名,(SELECT @i:=0) AS itable;”。 本教程操作环境:windows10系统、mysql8.0…

    2026年9月1日
    400
  • mysql嵌套查询语句是什么

    在mysql中,嵌套查询表示在一个SELECT语句的WHERE子句或HAVING子句中嵌套另一个SELECT语句的查询,也叫作子查询,语法为“SELECT语句 WHERE 条件(SELECT语句)”。 本教程操作环境:windows10系统、mysql8.0.22版本、Dell G3电脑。 mysq…

    2026年9月1日
    200
  • mysql怎么删除分区

    在mysql中,可以利用alter语句配合“DROP PARTITION”来删除分区,“DROP PARTITION”的作用就是用于删除指定的分区,语法为“ALTER TABLE ‘表名’ DROP PARTITION ‘分区名’ ”。 本教程操作环境…

    2026年9月1日
    100
  • MySQL的Explain执行计划怎么看_关键指标如何理解?

    MySQL的Explain执行计划怎么看_关键指标如何理解?MySQL的Explain执行计划怎么看_关键指标如何理解?MySQL的Explain执行计划怎么看_关键指标如何理解?MySQL的Explain执行计划怎么看_关键指标如何理解?

    mysql的explain执行计划用于分析sql语句的执行方式,帮助优化查询性能。1. id字段表示执行顺序,值越大优先级越高;2. select_type表示查询类型,如simple、primary、subquery等;3. type显示查找方式,最佳为const、eq_ref,最差为all;4.…

    2026年9月1日 用户投稿
    200

发表回复

登录后才能评论
关注微信