我试图获取两个不同表的resource列的不同计数,然后显示每个项目ID的比较。现在,此查询为我提供了两个表的相同计数值。
select
t1.PRJCT_ID,
count(t1.RSRC_ID) as TBL1_RSRC_CNT,
t2.PRJCT_ID,
count(t2.RSRC_ID) as TBL2_RSRC_CNT
from
DATA_TABLE_1 t1
LEFT OUTER JOIN
DATA_TABLE_2 t2 on t1.PRJCT_ID = t2.PRJCT_ID
GROUP BY
t1.PRJCT_ID, t2.PRJCT_ID
order by 1
当然,您将获得相同的计数,即对同一张表的列进行计数(这是由联接完成的,但仍然是一个矩形表)。
您要做的是使用子查询。首先获取每个项目ID的列表(从表中获取,或者从两个表中解析一个并集,但这表明数据库规范化不佳),然后独立查询表的数量:
select p.ID,
(select count(*) from DATA_TABLE_1 t1 where t1.ID=p.ID) Count1,
(select count(*) from DATA_TABLE_2 t2 where t2.ID=p.ID) Count2
from projects p
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句