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