为了账号安全,请及时绑定邮箱和手机立即绑定

有的问答对HAVING COUNT(id)>2的问题解释的不太全面,说下自己的看法(含测试)

http://img1.sycdn.imooc.com//5f3f5d150001228605600454.jpg

有不少问答说结果和COUNT()括号中的参数无关,其实还是有关系的,该句话先要执行的是SELECT,然后根据HAVING语句选择符合条件的分组,而条件COUNT()>6表示的是含有该字段(括号中的参数)的有值记录的个数,如果是NULL则不会计算在内。

因此在测试中通过SELECT分组有age=21,age=23,age=25以及age=10,若执行HAVING COUNT(password)>=6,则这四个分组没有一个分组达到要求(age=10的分组COUNT(password)返回的是3,因为去掉了NULL)。而若执行HAVING COUNT(id)>=6则age=10的分组符合,因为COUNT(id)返回的是7

不知道理解的对不对,希望大家指正

正在回答

1 回答

肯定是有关的,HAVING 后面就是要跟分组后的条件限定,举个极端的例子要是COUNT()括号中没有参数就是条件不全,运行会报错

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
与MySQL的零距离接触
  • 参与学习       396886    人
  • 解答问题       3353    个

本课程涵盖全部MySQL数据库的基础,学习MySQL数据库的基础知识

进入课程

有的问答对HAVING COUNT(id)>2的问题解释的不太全面,说下自己的看法(含测试)

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信