我有3张桌子A,B和C.
我想查询employee_name的计数,其中表a和c的id与表b的id(主表)匹配。
我还应该获得按照他们的os版本和p_version分组的员工姓名。
我试过了,
select count(employee_name),os.version,p_version where a.id=b.id and b.id=c.id;
我希望通过os.version和p_version对员工姓名进行分组。
答案 0 :(得分:0)
我不太确定我理解你的要求..以下是盲目猜测。
我不太确定表c应该如何连接到表b,顺便说一句......不管怎样,架构对我来说没有多大意义!
select b.os
, c.package_version
, count(a.employee_name)
from B
join A on (b.id=a.id)
join C on (b.id=c.id)
group by b.os,c.package_version
答案 1 :(得分:0)
(这个问题对我来说似乎还不清楚,但我会尝试一下:)
如果你已经尝试过
select count(employee_name),os.version,p_version where a.id=b.id and b.id=c.id;
然后我假设这是因为它正确地解决了架构。所以我会尝试这样做:
select "os version", p_version, count(employee_name)
from a,b,c
where a.id=b.id and b.id=c.id
group by "os version", p_version;
一个不明确的项目是你的问题是“操作系统版本”。你给它提供了一个空格,所以我猜它的名字中有一个空格。通常情况下不会发生,但如果确实如此,则必须以某种方式引用列名称。我的解决方案可能会解决oracle中的问题。如果它实际上有下划线或其他东西,则忽略引号。