oracle的联表查询
有表a,b   ,下面是一些数据
select * from a;
id     name     namecode          ids
1       w           1w              11
2       s          2s              22
3       c          3c              33
4       d          4d              33
select * from b;
id     name       vid             ids
1       w          11              11
2       s          22              22
3       c          33              33
4       d          33              33
联合查询结果
select * from a,b where a.ids=b.ids
id     name     namecode           ids      id      name       vid             ids
1       w          1w              11        1       w          11             11
2       s          2s              22        2       s          22              22        
3       c          3c              33        3       c          33              33       
4       d          4d              33        3       c          33              33        
3       c          3c              33        4       d          33              33      
4       d          4d              33        4       d          33              33     
我想根据b表的vid字段把a 表的数据分组,结果为
select count(a.id),b.vid from a,b where a.ids=b.ids group by b.vid   
count(a.id)        ids
1                   11
1                   22
4                   33
但是下面才是我想要的结果:
count(a.id)        ids
1                   11
1                   22
2                   33
想了很久,都没想出要怎么解决,不知哪位大侠能帮帮我?
------解决方案--------------------
有表a,b ,下面是一些数据
select * from a;
id name namecode ids
1 w 1w 11
2 s 2s 22
3 c 3c 33
4 d 4d 33
select * from b;
id name vid ids
1 w 11 11
2 s 22 22
3 c 33 33
4 d 33 33
联合查询结果
select * from a,b where a.ids=b.ids
id name namecode ids id name vid ids
1 w 1w 11 1 w 11 11
2 s 2s 22 2 s 22 22  
3 c 3c 33 3 c 33 33  
4 d 4d 33 3 c 33 33  
3 c 3c 33 4 d 33 33  
4 d 4d 33 4 d 33 33  
根据以上的表 33有4个,结果是4个很正常,你可以对a.id排重的话试试
------解决方案--------------------SQL code
select count(id),b_vid from
(
select a.*,b.vid b_vid from a,b where a.ids=b.ids
minus
null,null,null,null,null
)
goup by b_vid
------解决方案--------------------
select count(id),vid from (
select distinct a.id,b.vid from a,b where a.ids=b.ids) group by vid