繁体   English   中英

从SQL中的两个表中获取记录数

[英]get the count of records from two tables in sql

我有三个表,例如ORG_DETAILS,DISTRICT_MASTER和WORKER_DETAILS。

我想根据district_name来统计组织和相关工作人员的数量。 这是我正在尝试的查询...

 SELECT dm.DISTRICT_NAME ,
    count(od.Org_ID)as orgcount,
    count(wd.WORKER_ID)as workerscount
    from ORG_DETAILS od 
    left join WORKER_DETAILS wd  on wd.ORG_ID = od.ORG_ID
    left join DISTRICT_MASTER dm on od.DISTRICT_ID = dm.DISTRICT_ID

    GROUP BY dm.DISTRICT_NAME

我在计数中得到重复的值,例如,一个额外的组织计数和工人计数。

请在这件事上给予我帮助...

谢谢.....

解决问题的最简单方法是使用count(distinct)

SELECT dm.DISTRICT_NAME ,
       count(distinct od.Org_ID)a s orgcount,
       count(distinct wd.WORKER_ID)as workerscount
from ORG_DETAILS od left join
     WORKER_DETAILS wd
     on wd.ORG_ID = od.ORG_ID left join
     DISTRICT_MASTER dm
     on od.DISTRICT_ID = dm.DISTRICT_ID
GROUP BY dm.DISTRICT_NAME;

出于性能原因,如果计数很高,则在联接之前沿每个维度进行聚合会更好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM