我必须创建一个 sql 语句来显示父亲和他们的平均孩子数量。
这是我的 sql 脚本:
create table breeder (
breederNumber number(3) primary key,
name varchar2(20),
residence varchar2(20),
password varchar2(20)
);
create table race (
raceCode varchar2(2) primary key,
raceName varchar2(20) not null
);
create table sheep (
earTagNumber number(2) primary key,
father number(2),
mother number(2),
raceCode varchar2(2),
name varchar2(20),
previousBreeder number(3),
genotype varchar2(7),
gender varchar2(1) check (gender = 'M' OR gender = 'F'),
constraint fk_previousBreeder foreign key (previousBreeder) references breeder(breederNummer) on delete cascade,
constraint rk_raceCode foreign key (raceCode) references race(raceCode) on delete cascade,
constraint fk_mother foreign key (mother) references sheep(earTagNumber) on delete cascade,
constraint fk_father foreign key (father) references sheep(earTagNumber) on delete cascade
);
这是我到目前为止所拥有的:
select (s1.father), avg(s2.earTagNumber) as averageNumberOfKids
from sheep s1
join sheep s2 on s1.earTagNumber= s2.father
group by s1.father;
输出我得到的:
FATHER AVERAGENUMBEROFKIDS
------ -------------------
6.75
谁能帮我?
部分测试数据: http: //pastie.org/5452411
提前致谢!