博客
关于我
mysql中having的用法
阅读量:790 次
发布时间:2023-02-11

本文共 535 字,大约阅读时间需要 1 分钟。

在MySQL中,当我们需要使用聚合函数如SUM、COUNT等时,为了在统计结果后对数据进行进一步筛选,HAVING子句是非常有用的。与WHERE子句不同,WHERE是用于在聚合之前对数据进行筛选,而HAVING则是在聚合之后对结果进行筛选。理解这两者的区别对于高效编写SQL查询至关重要。

以下是一个典型的例子:假设我们需要统计不同分类(CID)下的答题记录数量,并筛选出每个分类下的答题次数超过2次的记录。

查询分类CID下答题记录的统计结果

SELECT cid, COUNT(id) AS nums FROM xzyd_question GROUP BY cid;

进一步筛选统计结果

为了筛选出每个分类的答题次数超过2次的记录,可以使用HAVING子句:

SELECT cid, COUNT(id) AS nums FROM xzyd_question GROUP BY cid HAVING nums > 2;

注意事项

  • 在HAVING子句中进行的判断条件必须基于聚合函数的返回结果。例如,nums > 2是有效的判断条件,因为它基于COUNT(id)的计算结果。
  • 确保HAVING子句中的条件能够正确反映数据的实际分布,避免因为逻辑错误导致无法获取预期结果。

转载地址:http://hsbfk.baihongyu.com/

你可能感兴趣的文章
mysql 表的操作
查看>>
mysql 视图,视图更新删除
查看>>
MySQL 触发器
查看>>
mysql 让所有IP访问数据库
查看>>
mysql 记录的增删改查
查看>>
MySQL 设置数据库的隔离级别
查看>>
MySQL 证明为什么用limit时,offset很大会影响性能
查看>>
Mysql 语句操作索引SQL语句
查看>>
MySQL 误操作后数据恢复(update,delete忘加where条件)
查看>>
MySQL 调优/优化的 101 个建议!
查看>>
mysql 转义字符用法_MySql 转义字符的使用说明
查看>>
mysql 输入密码秒退
查看>>
mysql 递归查找父节点_MySQL递归查询树状表的子节点、父节点具体实现
查看>>
mysql 通过查看mysql 配置参数、状态来优化你的mysql
查看>>
mysql 里对root及普通用户赋权及更改密码的一些命令
查看>>
Mysql 重置自增列的开始序号
查看>>
mysql 锁机制 mvcc_Mysql性能优化-事务、锁和MVCC
查看>>
MySQL 错误
查看>>
mysql 随机数 rand使用
查看>>
MySQL 面试题汇总
查看>>