博客
关于我
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/

你可能感兴趣的文章
MySQL5.7.37windows解压版的安装使用
查看>>
mysql5.7免费下载地址
查看>>
mysql5.7命令总结
查看>>
mysql5.7安装
查看>>
mysql5.7性能调优my.ini
查看>>
MySQL5.7新增Performance Schema表
查看>>
Mysql5.7深入学习 1.MySQL 5.7 中的新增功能
查看>>
Webpack 之 basic chunk graph
查看>>
Mysql5.7版本单机版my.cnf配置文件
查看>>
mysql5.7的安装和Navicat的安装
查看>>
mysql5.7示例数据库_Linux MySQL5.7多实例数据库配置
查看>>
Mysql8 数据库安装及主从配置 | Spring Cloud 2
查看>>
mysql8 配置文件配置group 问题 sql语句group不能使用报错解决 mysql8.X版本的my.cnf配置文件 my.cnf文件 能够使用的my.cnf配置文件
查看>>
MySQL8.0.29启动报错Different lower_case_table_names settings for server (‘0‘) and data dictionary (‘1‘)
查看>>
MYSQL8.0以上忘记root密码
查看>>
Mysql8.0以上重置初始密码的方法
查看>>
mysql8.0新特性-自增变量的持久化
查看>>
Mysql8.0注意url变更写法
查看>>
Mysql8.0的特性
查看>>
MySQL8修改密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
查看>>