Я весь день пытался использовать функцию max для результатов запроса select внизу. Я хочу получить следующее:
ROOM NURSES_PER_ROOM
RM2 1
RM1 .1666666666666666666666666666666666666667
RM3 1
Кому:
ROOM
RM2
RM3
Где RM2 и RM3 имеют самое высокое отношение NURSES_PER_ROOM.
create table Nurse
(PIN varchar2(6) not null primary key,
first_name char(16),
last_name char(20));
create table Room
(number_ varchar2(6) not null primary key,
size_ varchar2(6) not null);
create table Allocation
(nurse varchar2(6) not null primary key,
room varchar2(6) not null,
foreign key (nurse)
references Nurse(PIN),
foreign key (room)
references Room(number_));
insert into nurse(PIN, first_name, last_name)
values ('NU0011', 'Mary', 'Fritz');
insert into nurse(PIN, first_name, last_name)
values ('NU0012', 'Goth', 'Mortimer');
insert into nurse(PIN, first_name, last_name)
values ('NU0013', 'Rosa', 'Lotta');
insert into nurse(PIN, first_name, last_name)
values ('NU0014', 'Josie', 'Josiah');
insert into nurse(PIN, first_name, last_name)
values ('NU0015', 'Ruth', 'Williams');
insert into nurse(PIN, first_name, last_name)
values ('NU0016', 'Paige', 'Wakeham');
insert into room(number_, size_)
values ('RM1', '6');
insert into room(number_, size_)
values ('RM2', '2');
insert into room(number_, size_)
values ('RM3', '3');
insert into allocation(nurse, room)
values ('NU0011', 'RM1');
insert into allocation(nurse, room)
values ('NU0012', 'RM3');
insert into allocation(nurse, room)
values ('NU0013', 'RM3');
insert into allocation(nurse, room)
values ('NU0014', 'RM3');
insert into allocation(nurse, room)
values ('NU0015', 'RM2');
insert into allocation(nurse, room)
values ('NU0016', 'RM2');
select room, (number_nurses/ro.size_) as nurses_per_room from
(select room, count(nurse) as number_nurses
from allocation
group by room), room ro
where ro.number_ = room
Любая помощь Большое спасибо, спасибо.
РЕДАКТИРОВАТЬ: Попытка сделать это без операций JOIN
или оператора CASE
.