首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

oracle左连接统计有关问题

2012-05-27 
oracle左连接统计问题是这样的,首先a表有一列control_seq是主键,b表是附件表,b表里面的proj_id对应的是a表

oracle左连接统计问题
是这样的,首先a表有一列control_seq是主键,b表是附件表,b表里面的proj_id对应的是a表的control_seq,但是附件表会有多条记录,也就是说proj_id会重复。这种情况下,我想以左表为准,查询a表记录的同时对a表的附件数目进行统计。我自己做了一下,发现a left jon b,因为b会有多条附件的缘故,造成查询出来的数据会重复。多谢大大们指教。谢谢!

[解决办法]
查询a表记录的同时对a表的附件数目进行统计?

是统计行数吗?

select a.control_seq,count(b.proj_id) from a left join b
on a.control_seq=b.proj_id
group by a.control_seq;
[解决办法]
试试分析函数吧。
select a.control_seq ,col1,col2....., count() over(group by b.proj_id)
from a left join b
on a.control_seq=b.proj_id

如果是想统计每一control_seq对应的条数,则如上。如果是想统计b表的行数,则去掉group by 即可。
[解决办法]
只是统计行数1L就可以了 不会重复
[解决办法]

探讨

查询a表记录的同时对a表的附件数目进行统计?

是统计行数吗?

select a.control_seq,count(b.proj_id) from a left join b
on a.control_seq=b.proj_id
group by a.control_seq;

热点排行