此查询的目标是在我的数据库中查找每家公司的平均员工人数。这是我目前的查询以及我的结果:
create view Totals as
((select distinct count(company_name) as TotalCompanies, company_name
from company
group by company_name)
union
(select distinct count(Lastname) as TotalEmps, company_name
from Works
group by company_name));
select avg(TotalCompanies) from Totals;
--RESULT:
AVG(TOTALCOMPANIES)
2.777777777778
虽然我确实得到了结果(所以我不相信有任何语法错误),但根据我输入到表格中的实际数据,我不相信这个值是正确的。
我在视图创建中所做的是否甚至让我到了一个适当的点,我可以调用该视图的 TotalCompanies 字段的平均函数?我的意图是计算视图中每个公司名称的所有员工,然后平均这些值......
仅供参考,我正在使用 SQL for Oracle 11g R2,这是我正在为其创建查询的初始模式:
create table Employee(
Lastname varchar(10),
FirstName varchar(10),
MidInitial char(1),
gender char(1),
street varchar(10),
city varchar(10),
primary key(Lastname, FirstName, MidInitial));
create table company(
company_name varchar(20),
city varchar(10),
primary key(company_name));
create table Works(
Lastname varchar(10),
FirstName varchar(10),
MidInitial char(1),
company_name varchar(20),
salary numeric(8,2),
primary key(Lastname, FirstName, MidInitial, company_name),
foreign key(Lastname, FirstName, MidInitial) references Employee,
foreign key(company_name) references company);
谢谢您的帮助!