mysql语句 group by having

一个大神写的 having和group by的理解

这个博客写的不错,一下就通透了点。


select id,name, count(name) from tb_user 

从tb用户中选择id、name、count(name)

从上面的语句,可以看出 是找id,名字,name的重复数;当然是查不到什么的。


select id,name, count(name) from tb_user group by name;

这句话就可以看出来什么了。 前面的一样,只是加了个分组。就是把id,name先给分了组,然后分别统计分组前的结果集中,有几个一样的name。count(name)这里就写上1,1,23,4。这样的统计结果。代表着查询的分组前的结果集中,以name为这一列中,有同样的name值的分别有1个,1个,23个,4个。  


select id,name, count(name) as  numAAAA     from tb_user group by name having   numAAAA >1 ;

这个其实就是针对count(name) 这一列进行操作的。同时操作的对象也是分组后的数据。就是找出count(name)这一列中,

数值>1的数据。结果就是 23 和 4 的这两行的数据。

猜你喜欢

转载自blog.csdn.net/weixin_38728273/article/details/88791593