这个博客写的不错,一下就通透了点。
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 的这两行的数据。