1

在此处输入图像描述

我在 oracle 中使用北风数据库。

任务: 获取号码。在每个地区工作的员工人数。

结果:( 地区名称,员工人数)

我正在尝试这个查询,但它返回笛卡尔积

select r.regiondescription, count(e.employeeid)
from employees e,
     employeeterritories et,
     territories t,
     region r 
where r.regionid = t.regionid
  and et.territoryid = t.territoryid
  and e.employeeid = et.employeeid
group by r.regiondescription;

问题:我的查询有什么问题?

4

1 回答 1

3

我能想到的唯一一件事是,您的一张表正在将结果相乘,您应该改用 count(DISTINCT) :

select r.regiondescription, count(distinct e.employeeid)
from employees e,
     employeeterritories et,
     territories t,
     region r 
where r.regionid = t.regionid
  and et.territoryid = t.territoryid
  and e.employeeid = et.employeeid
group by r.regiondescription;
于 2016-04-06T13:22:23.647 回答