Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取sql中两个表的记录数_Sql - Fatal编程技术网

获取sql中两个表的记录数

获取sql中两个表的记录数,sql,Sql,我有三个表格,如组织详情、地区主管和工人详情 我要根据地区名称统计组织和相关工作人员的数量。这是我正在尝试的问题 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 jo

我有三个表格,如组织详情、地区主管和工人详情

我要根据地区名称统计组织和相关工作人员的数量。这是我正在尝试的问题

 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)


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

通过左连接属性进行分组,此查询看起来有点奇怪。但这并不一定是错的。之所以这样做,是因为od.district\u id可为空,并且您希望计算每个地区的所有详细信息,同时也要计算较少的地区详细信息?
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;