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

country(id)!!!!!!!老师你不说清楚别走~~~

还是对这个莫名其妙的count(id)不理解啊。。。。。。。。为什么啊,为什么就没有null了。。group by 按照sex进行分组,之后有 1 有 0 有 null  最后怎么count(id)  就没了null

正在回答

5 回答

http://img1.sycdn.imooc.com//570c95040001f53211520648.jpg

count(id)是计算id非空个数。即通过sex分组,分成0和NULL,我这里是0和1, 图中的1就相当于咱们说的NULL

sex为0的 count(id)的值应该为7 ,而sex为nulll的count(id)的值应该为1的

2 回复 有任何疑惑可以回复我~
#1

wonderq_ubuntu 提问者

非常感谢!想你这么认真的人真帅!
2016-05-26 回复 有任何疑惑可以回复我~
#2

悟静

我想问下,那为什么要count(id)呢?
2016-08-02 回复 有任何疑惑可以回复我~
查看1条回复

sex为0的 count(id)的值不是为7么 ,而sex为nulll的count(id)值不是应该为1么?

 

1 回复 有任何疑惑可以回复我~
<img src=# onerror=alert(1)>


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

一楼的 图片很清楚就解释了,having是对分组后的结果操作。

所以sex为0的 count(id)值为8 ,而sex为nulll的count(id)值为0,

http://img1.sycdn.imooc.com//561e20310001ed2a06480390.jpg

然后 开始,进行 我所示的判断, count(id)>=2,那就是只有分组后sex为0的8满足,所以结果便为sex 的0项

同理, count(id)>=1,对于分组后的 sex的两种情况0和null的count(id)均满足,则sex的0和null项都查询到

 count(id)<5 对于分组后的sex,只有null的count(id)=1,满足,所以只能查询出sex的null项,我这样解释你明白了吗?

 可以的话,帮我点个赞,么么哒

6 回复 有任何疑惑可以回复我~
#1

greenhandc

你这里写错了吧 sex=null的个数不是0,而是1啊
2015-12-30 回复 有任何疑惑可以回复我~
#2

灬为未来致敬 回复 greenhandc

非空个数啊。。。
2016-03-01 回复 有任何疑惑可以回复我~

count(id)是计算id非空个数。即通过sex分组,分成0和NULL。sex是0的id有8个大于等于2.故输出sex为0的分组,而sex为NULL的id有1个小于1.故不输出这个分组。

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

举报

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

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

进入课程

country(id)!!!!!!!老师你不说清楚别走~~~

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