sql如下:
select a.no1,b.no2 ,count(a.no1) from a, b
where a.cnid=b.cnid and a.no1='1997330783000028198'
group by a.no1,b.no2
查询结果是:
1997330783000028198 aa 1
1997330783000028198 bb 1
1997330783000028198 cc 1
1997330783000028198 dd 1
谁能告诉我,为什么count(a.no1)的结果是1,而不是4呢?
count不是统计所有的么?
我菜鸟,求指点。
------解决方案--------------------
因为你加了分组函数group by a.no1,b.no2,所以count就根据每组(a.no1,b.no2的组合)数据统计,正好每组中对应记录只有一条所以就是上面的结果了
------解决方案--------------------
group by a.no1,b.no2是按两个条件分组的,如果只是按照a.no1,就是4
------解决方案--------------------
简单的说吧,如果表的数据是这样
1997330783000028198 aa 1
1997330783000028198 bb 1
1997330783000028198 cc 1
1997330783000028198 dd 1
1997330783000028198 aa 1
1997330783000028198 bb 1
1997330783000028198 cc 1
1997330783000028198 dd 1
那么你的语句应该统计的结果是
1997330783000028198 aa 2
1997330783000028198 bb 2
1997330783000028198 cc 2
1997330783000028198 dd 2
也就是分组统计,group by 后面的字段是一个完整的组合