У меня есть запрос, который не дает мне правильных результатов. Я пытаюсь получить средний статус города в следующей таблице:проблема с avg SQL-запрос
SNO SNAME STATUS CITY
s1 Smith 20 London
s2 Jones 10 Paris
s3 Blake 30 Paris
s4 Clark 20 London
s5 Adams 30 Athens
запрос должен вернуть средний статус города для всех городов. Я знаю, что результаты должны быть 26.667, но как бы то ни было, мой оператор select не работает. Вот оно:
select avg(rs1.status) as average
from rs rs1, rs rs2
where rs1.city=rs2.city;
И результаты я получаю:
AVERAGE
---------------
21.11111111
Что я забыть ??? Или мне не нужно самостоятельно присоединяться?
КОД СОЗДАТЬ ТАБЛИЦУ:
create table rs
(sno char(5) not null,
sname char(20) not null,
status smallint,
city char(15),
primary key (sno)
);
insert into rs (sno, sname, status,city)
values('s1', 'Smith', 20, 'London');
insert into rs
values('s2', 'Jones', 10, 'Paris');
insert into rs
values('s3', 'Blake', 30, 'Paris');
insert into rs
values('s4', 'Clark', 20, 'London');
insert into rs
values('s5', 'Adams', 30, 'Athens');
Зачем вам самому присоединиться? –
Честно говоря, я думал, что это будет единственный способ сравнить города, а затем показать статус avg на основе города. Это не так просто, как выбор avg (status) из запроса rs, есть еще кое-что, я просто не могу понять, что ... – Bryan
Я не уверен, как вы получаете 26.6667. Не могли бы вы немного объяснить? – Jerry