有的问答对HAVING COUNT(id)>2的问题解释的不太全面,说下自己的看法(含测试)
有不少问答说结果和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
不知道理解的对不对,希望大家指正